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