Scott, On Tuesday 24 March 2009, Wagner Scott (ST-IN/ENG1.1) wrote: > There is indeed something artificial about my test ... on this > system, I know that Block 2629 is physically bad.  At least > part of the time, writes to some of its pages will not > succeed.  I have force-erased it (all OOB bad block markers > are reset) to simulate the condition where I have a new NAND > chip with as-yet-undiscovered bad pages.  This explains the > observation that the "block/page is not completely erased when > Yaffs believes it to have been so." > > My real concern is what happens when I have page write > failures..  I think what you are saying is that YAFFS: > - retries the write on a different page yes > - leaves the incorrectly written page alone and orphaned (e.g. > it won't be part of the YAFFS fs structure) yes > - allows the eraseblock (and its remaining good pages) to live > on, at least until erasure yes > - Marks the eraseblock bad in OOB when it is erased (e.g. > retires the block at erase time) I don't know about the real marking of bad blocks. We have actually disabled this in some versions of products where we were bitten by transient write errors causing large number of blocks to be persistently marked bad (OOB) and taken out of service. > Is this right?  If so, it seems OK as long as bad pages within > an eraseblock does not imply unreliability of other pages > within the same eraseblock. The logic around declaring a block truly bad and broken is lacking (both Yaffs and MTD). IRCC, NAND vendors recommend that blocks should be erased when there are write/read errors, and only marked bad if the erase fails, and then perhaps only after several attempts. Neither Yaffs nor MTD to this. -imcd