[Yaffs-archive] Re: yaffs and ecc

Charles Manning manningc2@actrix.gen.nz
Fri, 31 May 2002 15:31:30 +1200


A follow on from my previous comments on this....

> * Unlike NOR, you can attempt to write 1's on top of  0's without the
> operation failing. The result is the logical AND of the two. ie.
> programming 0xFE on top of 0x07 should yiled 0x06. Well that's my current
> belief anyway (and how I have implemented the writes in the nandemul
> layer). I will investigate further to check.
>

Ehem... bitwise AND.

I checked the dox for the Samsumng and Toshiba NAND parts and it looks like 
this is correct and the NAND parts do not mark these as failures. Indeed the 
Toshiba docs say that you should not reprogram the same values over already 
programmed stuff. Instead you should be writing 0xffs. ie. The preferred way 
to change the sequence 0x01, 0x02, 0xff, 0x04, 0x05 to 0x01, 0x02, 0x03, 
0x04, 0x05 is to program over 0xff, 0xff, 0x03, 0xff, 0xff. I expect this all 
ties in with the maximum number of times you can overwrite a page before an 
erasure.

There are however some checks in the nand.c that will fail the write. These 
checks are enabled by CONFIG_MTD_NAND_VERIFY_WRITE. 
Do you have this enabled?

Since YAFFS does its own verification, CONFIG_MTD_NAND_VERIFY_WRITE is not 
required. Maybe this could also become a partition dependent feature?


-- CHarles



---------------------------------------------------------------------------------------
This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org).
If mailing list membership is no longer wanted you can remove yourself from the list by 
sending an email to yaffs-request@toby-churchill.org with the text "unsubscribe" 
(without the quotes) as the subject.