Hi Vitaly Wool
Thanks a million for your help
, I am lijie from chongqing City China .
According
to your advice I have adjusted my NAND driver to make its OOB layout match
YAFFS2 OOB layout. my nandflash is : "NAND device: Manufacturer ID: 0xec,
Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit) "
the following oob
placements defined in
/driver/mtd/nand/nand_base.c
--------------------------------------------------------------------------
/*
Define default oob placement schemes for large and small page devices
*/
static struct nand_oobinfo nand_oob_8 =
{
.useecc =
MTD_NANDECC_AUTOPLACE,
.eccbytes =
3,
.eccpos = {0, 1,
2},
.oobfree = { {3, 2}, {6, 2}
}
};
static struct nand_oobinfo nand_oob_16 =
{
.useecc =
MTD_NANDECC_AUTOPLACE,
.eccbytes =
6,
.eccpos = {0, 1, 2, 3, 6,
7},
.oobfree = { {8, 8}
}
};
static struct nand_oobinfo nand_oob_64 =
{
.useecc =
MTD_NANDECC_AUTOPLACE,
.eccbytes =
24,
.eccpos =
{
40, 41, 42, 43, 44, 45, 46,
47,
48, 49, 50, 51, 52, 53, 54,
55,
56, 57, 58, 59, 60, 61, 62, 63},
.oobfree = { {2, 38}
}
};
--------------------------------------------------------------------------
While
oob placements definition in yaffs_mtdif.c
==========================================
static
struct nand_oobinfo yaffs_oobinfo = {
.useecc = 1,
.eccbytes =
6,
.eccpos = {8, 9, 10, 13, 14,
15}
};
==========================================
then i change the struct " nand_oobinfo
nand_oob_16" into
static struct nand_oobinfo nand_oob_16 =
{
.useecc = MTD_NANDECC_AUTOPLACE,
//equal to " 2 "
.eccbytes =
6,
.eccpos = {0, 1, 2, 3, 6,
7},
};
but the errors is the same as before. Anyclues
what
could be wrong ..
Any help will be highly appreciated.
regards