When I observe the communications between the processor and the NAND flash in a target that is trying (unsuccessfully) to boot, I see an endless series of page read commands. At first I thought that this was because the processor isn't finding the required bootloader data. But, the processor manual indicates that the processor boot up logic will attempt to read a bootstrap utility from flash page[0], failing that it will look to page[256], then page[512] and finally page[768]. If all of those reads fail, the manual says the processor will abandon the attempt to boot and I should see no more flash page reads, right? I'm guessing that when the manual says "fails to read" it is implying an ECC failure right? Because how would the processor boot logic to determine if data read from the flash constitutes a valid bootstrap utility or not, right?
Would the continuous page reads I'm seeing possibly indicate that the bootstrap utility was found, is running, and that it is attempting (unsuccessfully) to read a valid bootloader? The bootloader has a 32 bit checksum value recorded when it's written so if the data wasn't correct, the bootstrap code could detect that. If it can't read a valid bootloader it reboots the processor and the whole process starts again?
I am able to correct this problem by just re-writing the bootstrap/bootloader to the flash but it will eventually just fail again. Any thoughts? thanks!
Best,
Tim