NAND subsector writing problem

Charles Manning manningc2 at
Thu Jan 30 23:01:05 EST 2003


I assume you're using the TC58128AFT since there is no TC5818AFT.

I don't spend time in the mtd, only in YAFFS, but I can think of a few things 
to look at. No doubt other people can think of more things...

When I first looked at the NAND mtd a long time back I noticed that the 
verify did not always work properly on NAND, giving false errors. This I 
tracked down to a difference between NOR and NAND.  In NOR, a write fails if 
try to overwrite a zero with a one bit. In NAND, the operation does not fail 
even though the bit does not change.


Say you start with 12FF56.
If you write FF34FF
You now have 123456.
The NAND part will say the write was OK.
The verify might fail since FF34FF != 123456.

Thus, problems might arise if the page is not clean.

I've never used nandtest.c, so I am unsure as to whether it is expected to 
work with verify enabled.

It might be worth double-checking your chip commanding/handling (especially 
the address handling) to ensure that you're doing the right things for this 
part. It seems possible to me that there might be some address aliasing issue 
going on.

Perhaps you can hack nandtest to check that the page is empty before you 
write to it, then read it back in the case of a failure and look at what you 
got back.

I'm sorry I can't speak to the JFFS2 questions  as I only understand the 
YAFFS file system.

-- Charles

More information about the linux-mtd mailing list