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