发件人: howhowwork
发送时间: 2006-12-17 11:36:44
收件人: Vitaly Wool
抄送:
主题: Re: Re: [Yaffs] yaffs compiling errors 'yaffs_internal_read_super' and yaffs2 write errors
 
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
 
 

howhowwork
2006-12-17

发件人: Vitaly Wool
发送时间: 2006-12-13 17:31:02
收件人: howhowwork
抄送: yaffs@lists.aleph1.co.uk
主题: Re: [Yaffs] yaffs compiling errors 'yaffs_internal_read_super' and yaffs2 write errors
 
Hi,

On 12/13/06, howhowwork <howhowwork@163.com> wrote:
Hello,

first,  can you please introduce yourself? 'howhowwork' is not too a descriptive name. I'd say even more, my spam filter tried to block your message :)
 I downloaded the newest yaffs code from "http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs" and place it to
linux kernel 2.6.11. I select yafss and mtd support from muneconfig. After make, I got the error messages
at the end:

yaffs is deprecated, use yaffs2 in yaffs1 mode.
 
4. then there are erros when copying  data to mnt's directory
   the questions :
 when copy less 120k data , no errors,and the data is correct after i reboot
 however , copying more 100k data ,there are the following errors:
 =========================================== 
 **>>mtd ecc error unfixed on chunk 113984:0
 **>>mtd ecc error unfixed on chunk 113984:1
 **>>Block 3562 marked for retirement
 **>> yaffs chunk 114016 was not erased
 **>> Erasure failed 3563
 **>> Block 3563 retired

There's apparently a problem with your NAND driver. For kernel versions earlier than 2.6.18 you have to manually adjust (hack) your NAND driver to make its OOB layout match SmartMedia OOB layout.

Vitaly