[Yaffs] Verify problem with ECC

Pihet Jean-jpih01 jean.pihet at motorola.com
Fri Aug 12 09:34:56 BST 2005


Charles,

Thanks again for the reply.


>> Hello,
>>
>> I am using the latest YAFFS and MTD tarballs on a 2.6.10 kernel on ARM1136.
>> My board has a Samsung NAND device with hardware ECC enabled.
>>
>> The YAFFS write verify always fails. The dump shows that the ECC bytes 
>> (bytes 6..10) are in cause: Verify failed:
>> Addr s0 data:
>> 0x0000: 00 00 d0 ff ff ff f0 d6 8c ff ff ff 05 01 d8 c1 Addr s1 data:
>> 0x0000: 00 00 d0 ff ff ff c3 fc f0 65 02 ff 05 01 d8 c1
>>
>> Do you know what is the cause of this problem ? I checked that ECC and 
>> VERIFY are enabled in the config, that the oobinfo structs are 
>> correctly filled in.
>>
>> Any thoughts ?
>>
>ECC and bad block handling between mtd and yaffs is the most common problem encountered here.
>
>The trick is to do this in excatly one place only (ie YAFFS or mtd).
>
So for the moment we have to hack things to make it work.

>You also need to make sure that yaffs is using the same OOB layout at mtd. The standard YAFFS layout is as used by SmartMedia. If you are using some other OOB layout (quyite likely the case with some hardware ECC), then you need to ensure that:
>1) YAFFS is not doing ECC
OK the HW is doing it

>2) The spare bytes are being placed in the correct area. You might need to write some byte shuffling code.
I changed the yaffs_Spare struct for now, but I am sure there is a better solution as you indicated.


It would be nice to converge to the right solution to have YAFFS working on top on MTD for all boards.
What is the best solution to this ? Will the byte shuffling code be efficient ?

>
>-- Charles

Jean



More information about the yaffs mailing list