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):
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
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