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