Hi.
We have designed yet another board based on DM8148 and are having some random trouble when booting from NOR Flash (XIP)
We had already designed several systems based on DM8148 in the past years but none yet using XIP boot mode. On a few boards, booting from NOR Flash in XIP mode sometimes crashes.
The boards crashing during XIP boot from NOR Flash never crash when they boot from SD nor do they crash afterwards when booting from NOR passed properly.
We used the JTAG debugger to execute step by step. The code starts executing the first instructions from NOR Flash but at some early point, the address pointer jumps to some unexpected address and of course the codes stops executing properly. This always happen at the same point for a given binary code but if we make any change and recompile code, the crash happens somewhere else, yet, always at the same point.
While probing NOR Flash CS, I noticed that, when the execution crashes, the CS length is a bit shorter than when the code executes properly (about 108ns instead of 120ns). This makes me think that the problem may be caused by a PLL not initialized properly, generating an instable and too fast internal clock applied to the processor core, making the code execution to crash very quickly.
Again, this problem never happens when booting the same processor board from SD. During SD boot, there are some NOR flash accesses and those always show a 120ns CS length.
I think DM8148 initializes clocks (or something else) differently when this initialization is done by the ROM boot code (SD boot mode) than what our own boot code does from the Flash (XIP) but we could not find any detail about what and how the DM8148 ROM boot code initializes so, it's hard to compare with our own first level boot in XIP mode.
Is my description of our problem clear enough? Has anyone ever experienced similar issue and is there any know issue and workaround associated?
Thanks.
Arnaud.