On Monday 14 May 2007, Claudio Lanconelli wrote: > Hi David, > > I suggest you to try this with the latest Yaffs + recent kernel (2.6.19 > or newer): > > Use MTD_OOB_AUTO with the following layout (as suggested by Ian): Where do I put the MTD_OOB_AUTO? > > static struct nand_ecclayout nand_oob_16 = { > .eccbytes = 6, > .eccpos = { 9, 8, 10, 14, 13, 15 }, > .oobfree = { { 0, 4 }, { 6, 2 }, { 11, 2 } } > }; > > with CONFIG_NAND_ECC_SMC = N Ian suggested using .oobfree 0,5 not 0,4 for the newer MTD API, and I am using the newer MTD API as far as I know. This is the form I am using with ...ECC_SMC = N. But he also suggested:- >>AND fix up the yaffs pack/unpack funcs and calls to MTD >>read/write to understand this.  The block status can be gotten >>the same way, but this should only be needed by the scan step >>and can be retrieved from the (new) mtd using the bad-block test >>call. and I do not know how to do this or whether you are saying that this should not be necessary. David > > or > > static struct nand_ecclayout nand_oob_16 = { > .eccbytes = 6, > .eccpos = { 8, 9, 10, 13, 14, 15 }, > .oobfree = { { 0, 4 }, { 6, 2 }, { 11, 2 } } > }; > > with CONFIG_NAND_ECC_SMC = Y > > > Be sure to use default Yaffs configuration. > Especially CONFIG_YAFFS_DOES_ECC = N > > The translate functions (translate_spare2oob) in mtdif.c should work > fine untouched. > > Cheers, > Claudio Lanconelli