Charles Manning wrote: > On Wednesday 19 November 2008 05:34:48 Rutger Hofman wrote: >> I updated my checkout, and since that, after a while of running my basic >> test program spews: >> >> Writing -48 bytes to chunk!!!!!!!!! >> >> And it seems there are lots of blocks that are marked bad afterwards. > > Please email me your test (off list). > > Are you using yaffs1 or yaffs2 mode of operation? > > Bad blocks are usually a result of some lower level issue with the device > driver hosing the spare bytes. To make sure about the spare bytes, I check in 2 places whether a written data+spare are read back correctly by immediately reading them: in yaffs-fs.c, i.e. my eCos/YAFFS filesystem wrapper; and in my eCos NAND controller code. They compare identical in all cases. (This took some brain massage: memcmp() started reporting differences in the packedTag2 ecc field. But the only place where they turned out to differ is in the unused bytes for alignment between the starting unsigned char colParity and following unsigned lineParity). I am using the yaffs2 direct/ code. Depending on the history, sometimes my test completes correctly, and sometimes (e.g. after an erase of the nand chip) it gives this -48 bytes error after a while of testing. The test program just uses posix calls, it is my hacked-around version of a legacy eCos test program fileio1.c. Attached. I hope you can do something with some direct wrapper of your own... and that might be sufficiently different to make the problem go away of course. My nand chip is 2048Byte pages, a block is 64 pages, and I configure a YAFFS2 file system on blocks 10 .. 26. Rutger