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.
They do provide a 2.4.31 patch. It contains:-
$Id: yaffs_fs.c,v 1.27 2005/08/04 22:47:36 luc Exp $
$Id: yaffs_guts.c,v 1.15 2005/08/02 04:24:22 charles Exp $
The patch (which contains all manner of junk) is 4Mb, and includes
a complete set of yaffs files.
David
>
> > 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