my question is that : i use 1GB mlc flash, when i write to mtd0, mtd1 often have the same contents (not every time), and then when i erase mtd1 ,the mtd0 may also be erased. i don't know how this can happen, can anybody give me some help? thanks very much! the serial output is below : Scanning device for bad blocks Bad eraseblock 0 at 0x00000000 Bad eraseblock 1 at 0x00040000 Bad eraseblock 2 at 0x00080000 Bad eraseblock 3 at 0x000c0000 Bad eraseblock 4 at 0x00100000 Bad eraseblock 5 at 0x00140000 Bad eraseblock 6 at 0x00180000 Bad eraseblock 16 at 0x00400000 Bad eraseblock 24 at 0x00600000 Bad eraseblock 31 at 0x007c0000 Bad eraseblock 257 at 0x04040000 Bad eraseblock 311 at 0x04dc0000 Bad eraseblock 314 at 0x04e80000 Bad eraseblock 315 at 0x04ec0000 Bad eraseblock 316 at 0x04f00000 Bad eraseblock 317 at 0x04f40000 Bad eraseblock 512 at 0x08000000 Bad eraseblock 517 at 0x08140000 Bad eraseblock 1064 at 0x10a00000 Bad eraseblock 1978 at 0x1ee80000 Bad eraseblock 2004 at 0x1f500000 Bad eraseblock 2048 at 0x20000000 Bad eraseblock 2049 at 0x20040000 Bad eraseblock 2050 at 0x20080000 Bad eraseblock 2051 at 0x200c0000 Bad eraseblock 2052 at 0x20100000 Bad eraseblock 2053 at 0x20140000 Bad eraseblock 2054 at 0x20180000 Bad eraseblock 2064 at 0x20400000 Bad eraseblock 2072 at 0x20600000 Bad eraseblock 2079 at 0x207c0000 Bad eraseblock 2305 at 0x24040000 Bad eraseblock 2359 at 0x24dc0000 Bad eraseblock 2362 at 0x24e80000 Bad eraseblock 2363 at 0x24ec0000 Bad eraseblock 2364 at 0x24f00000 Bad eraseblock 2365 at 0x24f40000 Bad eraseblock 2560 at 0x28000000 Bad eraseblock 2565 at 0x28140000 Bad eraseblock 3112 at 0x30a00000 Bad eraseblock 4026 at 0x3ee80000 Bad eraseblock 4052 at 0x3f500000 Creating 2 MTD partitions on "NAND 1GiB 3,3V 8-bit": NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 2048 buckets, 16Kbytes TCP: Hash tables configured (established 16384 bind 32768) IP-Config: Guessing netmask 255.255.255.0 IP-Config: Complete: device=eth0, addr=192.168.60.118, mask=255.255.255.0, gw=255.255.255.255, host=192.168.60.118, domain=, nis-domain=(none), bootserver=255.255.255.255, rootserver=192.168.60.127, rootpath= NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. Looking up port of RPC 100003/2 on 192.168.60.127 Looking up port of RPC 100005/1 on 192.168.60.127 VFS: Mounted root (nfs filesystem). Freeing unused kernel memory: 0KiB freed (0xc0000000 - 0xc0000000) mkswap: error: swap area needs to be at least 160kB BusyBox v1.1.0 (2006.11.06-08:45+0000) multi-call binary Usage: mkswap [-c] [-v0|-v1] device [block-count] Prepare a disk partition to be used as a swap partition. Options: -c Check for read-ability -v0 Make version 0 swap [max 128 Megs] -v1 Make version 1 swap [big!] (default for kernels > 2.1.117) block-count Number of block to use (default is entire partition) BusyBox v1.1.0 (2006.11.06-08:45+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. # ./flash_eraseall /dev/mtd0 Skipping bad block at 0x00000000 Skipping bad block at 0x00040000 Skipping bad block at 0x00080000 Skipping bad block at 0x000c0000 Skipping bad block at 0x00100000 Skipping bad block at 0x00140000 Skipping bad block at 0x00180000 Erasing 256 Kibyte @ 3c0000 -- 2 % complete. Skipping bad block at 0x00400000 Erasing 256 Kibyte @ 5c0000 -- 4 % complete. Skipping bad block at 0x00600000 Erasing 256 Kibyte @ 780000 -- 5 % complete. Skipping bad block at 0x007c0000 Erasing 256 Kibyte @ 4000000 -- 50 % complete. Skipping bad block at 0x04040000 Erasing 256 Kibyte @ 4d80000 -- 60 % complete. Skipping bad block at 0x04dc0000 Erasing 256 Kibyte @ 4e40000 -- 61 % complete. Skipping bad block at 0x04e80000 Skipping bad block at 0x04ec0000 Skipping bad block at 0x04f00000 Skipping bad block at 0x04f40000 Erasing 256 Kibyte @ 7fc0000 -- 99 % complete. # ./flash_eraseall /dev/mtd1 Skipping bad block at 0x00000000 Erasing 256 Kibyte @ 100000 -- 0 % complete. Skipping bad block at 0x00140000 Erasing 256 Kibyte @ 89c0000 -- 15 % complete. Skipping bad block at 0x08a00000 Erasing 256 Kibyte @ 16e40000 -- 40 % complete. Skipping bad block at 0x16e80000 Erasing 256 Kibyte @ 174c0000 -- 41 % complete. Skipping bad block at 0x17500000 Erasing 256 Kibyte @ 17fc0000 -- 42 % complete. Skipping bad block at 0x18000000 Skipping bad block at 0x18040000 Skipping bad block at 0x18080000 Skipping bad block at 0x180c0000 Skipping bad block at 0x18100000 Skipping bad block at 0x18140000 Skipping bad block at 0x18180000 Erasing 256 Kibyte @ 183c0000 -- 43 % complete. Skipping bad block at 0x18400000 Erasing 256 Kibyte @ 185c0000 -- 43 % complete. Skipping bad block at 0x18600000 Erasing 256 Kibyte @ 18780000 -- 43 % complete. Skipping bad block at 0x187c0000 Erasing 256 Kibyte @ 1c000000 -- 50 % complete. Skipping bad block at 0x1c040000 Erasing 256 Kibyte @ 1cd80000 -- 51 % complete. Skipping bad block at 0x1cdc0000 Erasing 256 Kibyte @ 1ce40000 -- 51 % complete. Skipping bad block at 0x1ce80000 Skipping bad block at 0x1cec0000 Skipping bad block at 0x1cf00000 Skipping bad block at 0x1cf40000 Erasing 256 Kibyte @ 1ffc0000 -- 57 % complete. Skipping bad block at 0x20000000 Erasing 256 Kibyte @ 20100000 -- 57 % complete. Skipping bad block at 0x20140000 Erasing 256 Kibyte @ 289c0000 -- 72 % complete. Skipping bad block at 0x28a00000 Erasing 256 Kibyte @ 36e40000 -- 98 % complete. Skipping bad block at 0x36e80000 Erasing 256 Kibyte @ 374c0000 -- 98 % complete. Skipping bad block at 0x37500000 Erasing 256 Kibyte @ 37fc0000 -- 99 % complete. # mount -t yaffs2 /dev/mtdblock0 /mnt/0 yaffs: dev is 7936 name is "1f:00" yaffs: Attempting MTD mount on 31.0, "1f:00" restore entry: isCheckpointed 0 ecc error=-1 colParity=0x22 lineParity=0x0 lineParityPrime=0x0 ecc error=-1 colParity=0x24 lineParity=0x0 lineParityPrime=0x0 ecc error=-1 colParity=0x2a lineParity=0x0 lineParityPrime=0x0 ecc error=-1 colParity=0x2c lineParity=0x0 lineParityPrime=0x0 ecc error=-1 colParity=0x28 lineParity=0x0 lineParityPrime=0x0 ecc error=-1 colParity=0x6 lineParity=0x2 lineParityPrime=0xfffffff4 ecc error=1 colParity=0x29 lineParity=0x3 lineParityPrime=0xfffffffc ecc error=-1 colParity=0x4 lineParity=0x1 lineParityPrime=0x0 ecc error=1 colParity=0x0 lineParity=0xa lineParityPrime=0xa found no more checkpt blocks checkpoint byte count 0 restore exit: isCheckpointed 0 block 1 is bad block 2 is bad block 3 is bad block 4 is bad block 5 is bad block 6 is bad block 7 is bad block 17 is bad block 25 is bad block 32 is bad block 258 is bad block 312 is bad block 315 is bad block 316 is bad block 317 is bad block 318 is bad # mount -t yaffs2 /dev/mtdblock1 /mnt/1 yaffs: dev is 7937 name is "1f:01" yaffs: Attempting MTD mount on 31.1, "1f:01" restore entry: isCheckpointed 0 ecc error=-1 colParity=0x22 lineParity=0x0 lineParityPrime=0x0 ecc error=-1 colParity=0x24 lineParity=0x0 lineParityPrime=0x0 ecc error=-1 colParity=0x2a lineParity=0x0 lineParityPrime=0x0 ecc error=-1 colParity=0x2c lineParity=0x0 lineParityPrime=0x0 ecc error=-1 colParity=0x28 lineParity=0x0 lineParityPrime=0x0 ecc error=-1 colParity=0x6 lineParity=0x2 lineParityPrime=0xfffffff4 ecc error=1 colParity=0x29 lineParity=0x3 lineParityPrime=0xfffffffc ecc error=-1 colParity=0x4 lineParity=0x1 lineParityPrime=0x0 ecc error=1 colParity=0x0 lineParity=0xa lineParityPrime=0xa found no more checkpt blocks checkpoint byte count 0 restore exit: isCheckpointed 0 block 1 is bad block 6 is bad block 553 is bad block 1467 is bad block 1493 is bad block 1537 is bad block 1538 is bad block 1539 is bad block 1540 is bad block 1541 is bad block 1542 is bad block 1543 is bad block 1553 is bad block 1561 is bad block 1568 is bad block 1794 is bad block 1848 is bad block 1851 is bad block 1852 is bad block 1853 is bad block 1854 is bad block 2049 is bad block 2054 is bad block 2601 is bad block 3515 is bad block 3541 is bad # df -h Filesystem Size Used Available Use% Mounted on /dev/mtdblock0 128.0M 8.0M 120.0M 6% /mnt/0 /dev/mtdblock1 896.0M 10.5M 885.5M 1% /mnt/1 # ls /mnt/0 lost+found # ls /mnt/1 lost+found # cd /mnt/0 # ls lost+found # cp /sys-root.tgz . # ls lost+found sys-root.tgz # umount /mnt/1 save entry: isCheckpointed 0 checkpt blocks available = 3553 checking blocks 0 to 3583 allocating checkpt block 1 checkpoint byte count 114920 save exit: isCheckpointed 1 # mount -t yaffs2 /dev/mtdblock1 /mnt/1 yaffs: dev is 7937 name is "1f:01" yaffs: Attempting MTD mount on 31.1, "1f:01" restore entry: isCheckpointed 0 found checkpt block 1 ecc error=-1 colParity=0x0 lineParity=0x2ffff lineParityPrime=0xfffd0000 checkpoint byte count 0 restore exit: isCheckpointed 0 block 1 is bad block 6 is bad block 553 is bad block 1467 is bad block 1493 is bad block 1537 is bad block 1538 is bad block 1539 is bad block 1540 is bad block 1541 is bad block 1542 is bad block 1543 is bad block 1553 is bad block 1561 is bad block 1568 is bad block 1794 is bad block 1848 is bad block 1851 is bad block 1852 is bad block 1853 is bad block 1854 is bad block 2049 is bad block 2054 is bad block 2601 is bad block 3515 is bad block 3541 is bad Freechunks verification failure 446977 447105 -128 # df -h Filesystem Size Used Available Use% Mounted on /dev/mtdblock0 128.0M 23.8M 104.3M 19% /mnt/0 /dev/mtdblock1 896.0M 26.8M 869.3M 3% /mnt/1 # ls /mnt/1 lost+found sys-root.tgz # ls /mnt/0 lost+found sys-root.tgz ------------------------------------------------------------------- 快来参加博狂终级PK,IPod Nano等你来拿!( http://d1.sina.com.cn/sina/limeng3/mail_zhuiyu/2007/mail_zhuiyu_20070918.html ) =================================================================== 注册新浪2G免费邮箱(http://mail.sina.com.cn/)