Hello,
We are working on an OMAP3530 design which uses the MT29C4G48MAZAPAKQ-5_IT nandflash + RAM POP part.
As you know, this nand flash requires a 4-bit ECC correction for block 1 and above and 1-bit ECC for block 0.
When the board is turned on, the on-die engine is off at that time and the BOOTROM reads block 0 that was flashed with 1-bit ECC with no issue. However, as it mentioned in NAND ECC related wiki: http://processors.wiki.ti.com/index.php/Raw_NAND_ECC, there might be an issue after a warm reset because the ECC engine is still enabled. This is something that we cannot control in software (for instance after a watchdog reset).
Even in this specific use case, the board still boots after a warm reset - from the link above the following is stated : "Because of this the system will either fail to boot because the ROM code will try to correct the "errors" that it sees from the conflicting data, or it will boot because there are too many errors so it will just send the raw data without correcting. ". We assume that there is still a chance that the boot can fail, but the probability is extremely small. For this to happen, the actual data representing the 4-bit ECC in the spare area would have to somehow be able to falsely "correct" block 0, and the chances for this would roughly be one out of millions. Is that a fair statement and do we have a clear understanding of this use case?
Furthermore, when no correction can be made, the NAND flash should return an error after sending a READ STATUS command. Since the board is actually booting, could you confirm that the ROM code does NOT take this status into account?
Regards,
Sebastien