So we have a number of our boards back, and we find that when you press the warm reset button, some boards reboot immediately, where others will wait maybe 10 seconds before rebooting. (We are performing the reset with the processor booted into u-boot).
Our warm reset circuit is very standard, I think. When pressed, it connects nRESWARM (on the 65920 PMIC) and SYS_nRESWARM (on the OMAP 3503) to ground. When not pressed, those two signals are pulled to 1.8V_IO with a 4.7K resistor.
Interestingly, if software (u-boot) issues a reset (writing 2 to PRM_RSTCTRL) the same thing occurs. Some boards will reset immediately, others wait 10 seconds. An individual board will behave the same no matter whether you do software or button reset. Either it'll be immediate reset or a 10 sec reset, depending on the board.
On boards which exhibit the 10 second reset, the boot rom reports that it has performed an MPU watchdog reset when it (eventually) launches xloader (bit 4 of the Reset reason field of the Booting Parameters Structure is set. Entire byte value is 0x51). On boards which do not exhibit the 10 second reset, the boot rom does not report a watchdog (Reset reason = 0x41). So it seems clear that something in the boot rom is dying on boards which have the 10 second reset, and the watchdog is saving us.
It seems to not matter whether we are booting from our MMC card or from the on-board NAND chip. Nor does it seem to matter whether we've programmed our warm reset sequence in the PMIC. And the chip revision seems to be the same on all boards.
I've looked at the chip errata (SPRZ278D, revised March '09), and I think I've been able to rule out any errata that appeared to have some relevance.
Anyone else seen this kind of problem before?
Any suggestions on how to figure out why the boot rom sometime dies on reset and sometimes does not (depending on the board)?
And does anyone have any ideas regarding things that might be overlooked by xloader and u-boot that are relevant?
Thanks in advance,
Ken