ECC errors on padded images
Thomas Gleixner
tglx at linutronix.de
Sat Dec 4 12:34:49 EST 2004
On Sat, 2004-12-04 at 15:33 +0200, Jarkko Lavinen wrote:
> I recently encountered ECC errors with padded JFFS2 images (mkfs.jffs2
> -p) on Nand flash.
>
> The padded pages were written into flash with a driver which uses
> noninverted ECC code. Pages with all bytes either 00 or FF will
> produce 00s as ECC bytes.
>
> When JFFS2 scans such padded image, it fails to check the zero ECC
> bytes of seemingly unused pages and will use them. Then the already
> once written page is written again and later an ECC error is produced
> upon read -- because ECC bytes remain zero.
>
> We have now three options:
>
> 1. We couuld blame JFFS2, because it fails to check ECC bytes of
> seemingly unused pages.
>
> But should JFFS2 care if somebody produces an image that JFFS2
> would never produce by itself?
>
> JFFS2 itself won't pad erase blocks and won't write unused blank
> pages. Even if writing a long node would result writing an all FF
> page, JFFS2 would know in next mount from node header the page is
> being used and not available for writing.
>
>
> 2. We could blame Mkfs.jffs2, because it is the one who produced
> padded erase block. Without padding there would be no error.
>
>
> 3. We could blame the Ecc logic and insist that writing a blank, all
> FF page will result ECC code of FFs and it would allow writing
> first a blank page and then real data page.
>
> Conceptually an unused, erased page is not the same as used,
> written blank page.
4. We could blame you, that you did not read the mail archive and found
the thread discussing this problem and for not using the -p=YOURPAGESIZE
option :)
tglx
More information about the linux-mtd
mailing list