One bit flip in erased page causes uncorrectable error using (LS1020A) HW ECC
Richard Weinberger
richard.weinberger at gmail.com
Thu Mar 9 14:15:56 PST 2017
Kees,
On Tue, Mar 7, 2017 at 10:15 AM, Kees Trommel <ctrommel at aimvalley.nl> wrote:
> 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?
What exactly does UBI report?
> 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.
UBIFS assumes that empty space is really empty and assumes that the layers below
deals with bit flips in empty pages.
So, I fear your driver needs a better way to work around these bit flips.
--
Thanks,
//richard
More information about the linux-mtd
mailing list