copy data to nandflash problem with jffs2 filesystem

li jie cqdxlijie at hotmail.com
Wed Dec 13 04:36:47 EST 2006


 Hello,

	I have mips board au1200 with a Samsung K9D1208V 64MB NAND flash which
is 528bytes/page and nor flash with 31M. 
	i have established a jffs2 filesystem as root filesystem in nor flash with 
31M ,
my sytem is ok if only use nor flash . now i plan to mount nand flash under 
jffs2 filesystem .
 
 ▲1. start 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 -j /dev/mtd6 " //,passed
 
 ▲3. # mount -tjffs2 /dev/mtdblock3 /mnt/ ,         // passed   
      
    # mount -tjffs2 /dev/mtdblock4 /mnt4/          //warning 
     jffs2: Erase block size too small (16KiB). Using virtual blocks size 
(32KiB) instead
    
    when i copy data to /mn4 or /mnt ,   I got the error messagesat the 
end:
     
============================================================================================

	/mnt1 # cp /usr/flash_eraseall* .
	jffs2_flush_wbuf(): Write failed with -5
	Write of 1733 bytes at 0x00e3c01c failed. returned -5, retlen 0
	Not marking the space at 0x00e3c01c as dirty because the flash 
	driver returned retlen zero
	jffs2_flush_wbuf(): Write failed with -5
	Write of 1733 bytes at 0x00e30038 failed. returned -5, retlen 0
	Not marking the space at 0x00e30038 as dirty because the flash 
	driver returned retlen zero
	cp: Write Error: Input/output error
	jffs2_flush_wbuf(): Write failed with -5
	Recovery of wbuf failed due to a second write error
	Write of 2054 bytes at 0x00e2e608 failed. returned -5, retlen 0
	Not marking the space at 0x00e2e608 as dirty because the flash 
	driver returned retlen zero
	jffs2_flush_wbuf(): Write failed with -5
	Recovery of wbuf failed due to a second write error
	Write of 2054 bytes at 0x00e20000 failed. returned -5, retlen 0
	Not marking the space at 0x00e20000 as dirty because the flash 
	driver returned retlen zero
	cp: Write Error: Input/output error
	/mnt # Erase at 0x00e30000 failed immediately: errno -5
	jffs2_flush_wbuf(): Write failed with -5
	CPU 0 Unable to handle kernel paging request at virtual address 
	00200200, epc == 801f3350, ra == 801f3568
	Oops in arch/mips/mm/fault.c::do_page_fault, line 167[#1]:
	Cpu 0
	$ 0   : 00000000 1000fc00 00100100 00200200
	$ 4   : 00100100 00200200 0000612a 804688f8
	$ 8   : 0000000a 00004001 00000000 00000000
	$12   : fffffffa ffffffff 0000000a 00000000
	$16   : 8d3054f0 8f63a000 8f63a000 8d3054f0
	$20   : 00e20000 00000000 00000000 00000002
	$24   : 8055bab0 804688eb                  
	$28   : 8055a000 8055bb20 ffffffff 801f3568
	Hi    : 00006600
	Lo    : 000001c5
	epc   : 801f3350 jffs2_block_refile+0x38/0x1e8     Not tainted
	ra    : 801f3568 jffs2_wbuf_recover+0x68/0x828
	Status: 1000fc03    KERNEL EXL IE 
	Cause : 0080000c
	BadVA : 00200200
	PrId  : 04030200
	Modules linked in:
	Process pdflush (pid: 9, threadinfo=8055a000, task=80526be8)
	Stack : 0000612a 80123760 ffffffff 00000002 00000400 8055bbbc 1000fc01 
ffffffa0
	        1000fc01 0000000a fffffffb 8f63a000 801f3568 8f63a400 00000020 
00000000
	        80468518 00000001 80123b8c 801239f8 00e20000 00000000 00000000 
00000002
	        fffffffb 8f63a000 00000001 8f63a000 fffffffb 8f63a000 00000001 
8f63a000
	        00e20000 00000000 00000000 00000002 ffffffff 801f3ec4 00000000 
fffffffb
	        ...
	Call Trace:
	 [<80123760>] call_console_drivers+0x88/0x170
	 [<801f3568>] jffs2_wbuf_recover+0x68/0x828
	 [<80123b8c>] vprintk+0x200/0x248
	 [<801239f8>] vprintk+0x6c/0x248
	 [<801f3ec4>] __jffs2_flush_wbuf+0x19c/0x4c8
	 [<801f4b00>] jffs2_flash_writev+0x568/0x624
	 [<801e9660>] jffs2_write_dnode+0x144/0x6d8
	 [<801e9d74>] jffs2_write_dirent+0x180/0x6a4
	 [<801ef4bc>] jffs2_garbage_collect_dnode+0x2a8/0x55c
	 [<801e72ac>] jffs2_reserve_space_gc+0x4c/0x74
	 [<801ee954>] jffs2_garbage_collect_dirent+0x1ac/0x1ec
	 [<8018b224>] iget_locked+0x7c/0x10c
	 [<8011f0d4>] __wake_up_common+0x68/0xc0
	 [<801ede0c>] jffs2_garbage_collect_live+0x310/0x384
	 [<8011f16c>] __wake_up+0x40/0x7c
	 [<80123760>] call_console_drivers+0x88/0x170
	 [<801ed740>] jffs2_garbage_collect_pass+0x3b0/0x76c
	 [<8011f16c>] __wake_up+0x40/0x7c
	 [<801239f8>] vprintk+0x6c/0x248
	 [<801f05f4>] jffs2_erase_failed+0x98/0x11c
	 [<80123980>] printk+0x1c/0x28
	 [<8011f16c>] __wake_up+0x40/0x7c
	 [<801f0240>] jffs2_erase_block+0x160/0x1b8
	 [<801f01a8>] jffs2_erase_block+0xc8/0x1b8
	 [<801f4388>] jffs2_flush_wbuf_gc+0x198/0x358
	 [<801f44ec>] jffs2_flush_wbuf_gc+0x2fc/0x358
	 [<801f2094>] jffs2_write_super+0x50/0x58
	 [<801f2088>] jffs2_write_super+0x44/0x58
	 [<80172718>] sync_supers+0x164/0x17c
	 [<8014ce50>] wb_kupdate+0x54/0x180
	 [<8014dfb0>] __pdflush+0x130/0x26c
	 [<8014df60>] __pdflush+0xe0/0x26c
	 [<8014e0ec>] pdflush+0x0/0x28
	 [<8014e108>] pdflush+0x1c/0x28
	 [<8014cdfc>] wb_kupdate+0x0/0x180
	 [<8013c334>] kthread+0xdc/0xe4
	 [<8013c2d0>] kthread+0x78/0xe4
	 [<801056c0>] kernel_thread_helper+0x10/0x18
	 [<801056b0>] kernel_thread_helper+0x0/0x18
	Code: 3c030020  34420100  34630200 <aca40000> ac850004  ae020000  ae030004 
 8e020024  10400056 
	
	why ... 
	what is somthing wrong ?

please help me out ..

_________________________________________________________________
免费下载 MSN Explorer:   http://explorer.msn.com/lccn/  





More information about the linux-mtd mailing list