On Friday 19 January 2007 13:25, howhowwork wrote: > Hi , > > I have mips board au1200 with a Samsung K9f1208V 64MB NAND flash which > is 528bytes/page and nor flash with 32M. i have established a jffs2 > filesystem as root filesystem in nor flash with 32M ,my sytem is ok if only > use nor flash . now i plan to mount nand flash under jffs2 filesystem . I > downloaded the newest yaffs2 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: > > all of transport is passed > > 1. i boot my board using jffs2 filesystem as root filesystem > # cat /proc/mtd > dev: size erasesize name > mtd0: 03c00000 00020000 "User11 FS" > mtd1: 00100000 00020000 "YAMON" > mtd2: 002c0000 00020000 "raw kernel" > mtd3: 00800000 00004000 "NAND FSa 0" > mtd4: 03800000 00004000 "NAND FSa 1" > > 2. using the tools "flash_eraseall /dev/mtd6 ",passed > > 3. # mount -tyaffs /dev/mtdblock4 /mnt/ > yaffs: dev is 32505860 name is "mtdblock4" > yaffs: Attempting MTD mount on 31.4, "mtdblock4" > > 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 > ...... > **>> yaffs chunk 416 was not erased > **>> Erasure failed 13 > ...... > yaffs tragedy: no more eraased blocks > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! > ...... > **>>mtd ecc error unfixed on chunk 1375:0 > **>>mtd ecc error unfixed on chunk 1375:1 > **>>Block 42 marked for retirement > yaffs tragedy: no more eraased blocks > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!! > ......................................... > then i try to exc command "df" > /mnt # df > Filesystem 1k-blocks Used Available Use% Mounted on > /dev/mtdblock0 61440 27308 34132 44% / > tmpfs 512 60 452 12% /var > /dev/loop1 1244 1244 0 100% /root/test > /dev/mtdblock4 57344 57344 0 100% /mnt > > exc command "reboot" > /mnt #df > Filesystem 1k-blocks Used Available Use% Mounted on > /dev/mtdblock0 61440 27308 34132 44% / > tmpfs 512 60 452 12% /var > /dev/loop1 1244 1244 0 100% /root/test > /dev/mtdblock4 57344 57344 0 2% /mnt > > why ... > what is somthing wrong ? You are getting some ecc errors, most likely because your oob-area data placement is conflicting with the way your nand driver is working. I suggest having a very good look at usgae of the oob bytes and looking for any conflicts. > > > according to some suggustion , I changed my oob placement as following > : > > /* 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 = 1, > .eccbytes = 6, > .eccpos = {8, 9, 10, 13, 14, 15}, > }; > > but the errors is the same as before. Anyclues what > could be wrong .. > Any help will be highly appreciated. > > > regards > > please help me out ... > > > > > howhowwork > 2007-01-15