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.