On 9/16/06, Wookey wrote: > OK. Something is badly wrong here. A useful thing to do to get some > clue what's going wrong is turn on some yaffs tracing. You can do this > live when you have a shell and /proc as described on this page [I've > just made as it didn't appear to be documented anywhere]: > > http://www.aleph1.co.uk/yaffsdebugging Yeah, and I've just figured out what's wrong. The problem is that YAFFS1 is basically incompatible with how NAND treats OOB for a common (ie non-SmartMedia) NAND flash chips. YAFFS1 actually reads yaffsSpare structure from an OOB which can not be implemented now without special translation which I'm currently trying to implement. The main problem is that of course you can read RAW data from an OOB and treat it as yaffsSpare structure BUT when you write yaffsSpare structure as RAW data you'll *overwrite* 5th OOB byte which is used a cleanmarker for a standard 512b page NAND flash chip within Linux MTD/NAND subsystem. I'll implement the translaion but it won't be *completely* vaild since commonly 16-byte OOB has only 8 spare bytes, whereas yaffsSpare needs 10, excluding ECC. And that's something we can't easily solve. Vitaly