ECC errors on padded images
Artem B. Bityuckiy
dedekind at yandex.ru
Thu Dec 9 05:38:22 EST 2004
Thomas Gleixner wrote:
> 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
>
Anyway, mkfs.jffs2 should print this in help, IMHO. I was confused by
this either.
--
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
More information about the linux-mtd
mailing list