One bit flip in erased page causes uncorrectable error using (LS1020A) HW ECC

Kees Trommel ctrommel at aimvalley.nl
Tue Mar 7 01:15:46 PST 2017


Hello,

I am doing development on a custom board with a NXP LS1020A of which the 
NAND controller supports HW ECC. Unfortunately the implementation of the 
HW ECC does not do the final XOR with the ECC of an empty page (like the 
Linux SW implementation does). This causes that a read of an empty page 
(both data and OOB) causes the HW to report an uncorrectable error. The 
Linux driver of this NAND controller (drivers/mtd/nand/fsl_ifc_nand.c) 
tries to workaround this by checking whether a page with an 
uncorrectable error is erased and if so the uncorrectable error is 
suppressed. However this work around does not work when a bit flips in 
an erased page because the page is no longer regarded as empty:(

I observed a few times that UBI reports uncorrectable errors for the 
above reason and I am wondering whether this can cause a corruption of 
the UBI/UBIFS on top of the NAND mtd?

Until now I did not observe an UBI/UBIFS corruption but I am not sure 
whether I am just lucky or whether UBI/UBIFS can deal with uncorrectable 
errors in erased pages. I am  hoping that someone with a more in depth 
knowledge of UBI/UBIFS can answer this.

Regards,

Kees Trommel.




More information about the linux-mtd mailing list