On Wednesday 09 May 2007, Charles Manning wrote: > On Thursday 10 May 2007 07:03, David Goodenough wrote: > > OK, I have dumped the first 1024 bytes of /dev/mtd0. It reads:- > > > > ECC failed: 8 > > ECC corrected: 0 > > Number of bad blocks: 0 > > Number of bbt blocks: 0 > > Block size 16384, page size 512, OOB size 16 > > Dumping data starting at 0x00000000 and ending at 0x00000400... > > ECC: 1 uncorrectable bitflip(s) at offset 0x00000000 > > 0x00000000: 01 00 00 00 01 00 00 00 ff ff 6b 65 72 6e 65 6c > > 0x00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000100: 00 00 00 00 00 00 00 00 00 00 ff ff a4 81 00 00 > > 0x00000110: 00 00 00 00 00 00 00 00 c1 43 6d 38 c1 43 6d 38 > > 0x00000120: c1 43 6d 38 00 00 00 00 ff ff ff ff ff ff ff ff > > 0x00000130: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x00000140: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x00000150: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x00000160: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x00000170: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x00000180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x00000190: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x000001a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x000001b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x000001c0: ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 > > 0x000001d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x000001e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > > 0x000001f0: ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 > > OOB Data: 00 00 10 00 00 ff 9d 01 ff f0 0f 5c 81 aa 5a a7 > > ECC: 1 uncorrectable bitflip(s) at offset 0x00000200 > > If you're getting ECC errors here it is possibly because the flash has been > written using yaffs_ecc.c and read (with nand_dump) using mtd's nand_ecc.c > > nand_ecc.c generates exaclty the same data as yaffs_ecc.c, but the byte > ordering is different. Both implement the SmartMedia ECC mechanism, but the > byte order is broken in nand_ecc.c > > There are two solutions to this mess: > 1) Microtik should provide their driver configs under GPL. > 2) Trace through the data reading/writing to see where the OOB byte > ordering is getting screwed up. > > > 0x00000200: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 > > 0x00000210: 02 00 08 00 01 00 00 00 40 00 28 80 34 00 00 00 > > 0x00000220: 44 fb 1f 00 01 10 00 50 34 00 20 00 03 00 28 00 > > 0x00000230: 14 00 13 00 00 00 00 70 70 73 19 00 70 93 29 80 > > 0x00000240: 70 93 29 80 18 00 00 00 18 00 00 00 04 00 00 00 > > 0x00000250: 04 00 00 00 01 00 00 00 a0 00 00 00 00 10 10 80 > > 0x00000260: 00 10 10 80 68 b7 17 00 68 b7 17 00 05 00 00 00 > > 0x00000270: 20 00 00 00 01 00 00 00 00 c0 17 00 00 e0 27 80 > > 0x00000280: 00 e0 27 80 00 c0 05 00 e0 6f 08 00 07 00 00 00 > > 0x00000290: 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000002a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000002b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000002c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000002d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000002e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000002f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x00000390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000003a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000003b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000003c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000003d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000003e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 0x000003f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > OOB Data: 01 00 10 80 ff ff 9d 01 a6 55 97 d8 81 ff ff ff > > > > I hope this makes sense to someone. > > > > David > > > > _______________________________________________ > > yaffs mailing list > > yaffs@lists.aleph1.co.uk > > http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs Would it be helpful if I copied this one file off the card, did a mtd erase, mounted the partition as yaffs (using the latest cvs version with 2.6.19) and copied the file onto the partition. That way we might see the different ecc byte ordering, and any other OOB formatting differences. That is of course assuming no-one has any other tests they would like me to do. David