Hello,
I have two versions of an OMAP 5912 OSK board with different flash modules. The first version uses a Macronix PC28F256P30BFE module which was marked obsolete some time ago. The second, newer, version uses a Macronix MT28EW256ABA1LPC-0SIT flash module which is still in production. When warm rebooting Linux 2.6.28 both boards work as expected, landing in u-boot and eventually making it into Linux. However, when using Linux 4.18, the board using the older PC28F256P30BFE module hangs in the first stage ROM bootloader and never makes it to U-boot. The newer flash module MT28EW256ABA1LPC-0SIT works fine with the newer kernel and is able to reboot as expected. Both boards are able to cold boot just fine, so I suspect there's some sort of reset that isn't being properly done for the older flash module, but I'm not exactly sure what that would be since I've modified the reboot routine in 4.18 to match the reboot routine in 2.6.28. The reboot routine is also fairly straightforward, it just disables interrupts, clears cache, does a memory manager remap and then writes a value to the ARM_RSTCT1 register. I know the reboot routine is working because I attached a JTAG debugger to the board and I can see the PC is reset to 0, and the CPU is halted in CCS, then the CPU begins executing what I can only assume is the first stage ROM bootloader. Unfortunately, I wasn't able to figure out much from this because even on a working board the ROM bootloader doesn't want to jump to U-boot while stepping through instructions individually, only when I hit the 'Run' button will it jump to u-boot and then Linux. I checked the schematic of the board and confirmed that nothing on the reset pin or any other pin has changed with regard to how it is connected to the OMAP processor. Any information on how to proceed from here is appreciated.
Best,
Kelvin