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 ? 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