On Wednesday 19 November 2008 07:14:43 Rutger Hofman wrote: > 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. > Can you try the patch in http://www.aleph1.co.uk/lurker/message/20080928.082847.8b793974.en.html I have not been able to reproduce this problem but perhaps you are reproducing it here. -- CHarles