- I have been tasked to find the root cause and fix an issue in a custom design board based on imx28.
- imx28 fails to boot from NAND and goes to USB recovery mode.
- Issue arises after changing the NAND flash to a different NAND flash.
- Upon looking into the changes in the NAND drives, I found that the 'starting sequence' of the new replacement NAND drive takes 100x more time to finish than the old one (the old one takes ~10us and the new one takes ~1ms). I suspect that this causes to fail the boot from the NAND and go to USB recovery mode.
- I replaced the 'reset capacitor' of the imx28 with another capacitor that has much more capacitance, effectively delaying the imx28 startup. This fixes the NAND boot issue. This convinced me that imx28 trying to access the NAND drive before the NAND drive finishes its starting sequence and that's what causes the issue.
- Linux-2.6.35.3 and the u-boot-2009.08 sources are used to build the binaries for the system.
- I have been trying to pinpoint the location in the bootloader source files where it begins to access the NAND drive so that I can implement a delay as a software fix for the issue. So far I have failed to find that.
- Am I on the right track? Are there any parameters I can change in any config files to increase the boot delay? In the source files, where can I find the entry point to the NAND access?