I am seeing occasional failures of our products to boot and run after a power on or reset event. I am using MQX 18.104.22.168 with the (mostly) stock bootstrap/bootloader. The processor is retrieving the boot code from a Micron MT29F16G08ABABAWP NAND Flash part. The original NAND flash part used on the Freescale tower module went EOL so I chose this replacement part and tweaked the bootloader code for the different internal architecture of the newer flash part. Some units, after some variable time in service (hours, days, weeks, months, etc) will fail to boot after a power up event. When this happens, the only cure seems to be to re-fresh the bootstrap/bootloader code to the NAND flash device. Once this is done, the part boots normally again for some variable time. If the flash chip is replaced, sometimes the problem continues but more often the problem seems to be cured.
Anybody else having any similar problems with there NAND flash parts? I've begun to wonder if perhaps NAND flash isn't an appropriate technology for booting a processor given the fact that cells can go bad in the blocks that the processor reads at boot time. Since the processor boot process is always going to go to the same locations in the flash to read boot code, the boot code stored at those locations (Blocks and up) always needs to be correct. I had assumed that since SLC NAND flash is good for around 100,000 writes, and it's only written once or twice in our products, that the potential for a flash cell failure wouldn't be a problem. Maybe I have this wrong? Anybody else using NAND flash to boot their processors? Anybody else seeing anything similar? Thanks!