Problem with AT91RM9200 and intel cfi flash
Hello,
i have a problem with unmounting a jffs2 partition which is located on the Intel StrataFlash 28F640J3. The System is an AT91RM9200 with kernel version 2.6.12 (and the appropriate patches from maxim.org.za/AT91RM9200/2.6).
I mount the rootfs via nfs and all works fine. I created flash patitions and i want to use one with a jffs2 filesystem. Therefore i use the (latest) mtd tools (mkfs.jffs2 revision 1.45). I can mount the partition with
#> mount -t jffs2 /dev/mtdblock3 /mnt/jffs2
and it is possible to read and write to the partition.
The problem occurs when i try to unmount the partition with
#> umount /mnt/jffs2
The instruction aborts with the following error:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c030c000 [00000000] *pgd=20019031, *pte=00000000, *ppte=00000000 Internal error: Oops: 817 [#1] Modules linked in: CPU: 0 PC is at __down_write+0x9c/0xd4 LR is at jffs2_flush_wbuf_pad+0x1c/0x3c pc : [<c01b235c>] lr : [<c00d8140>] Not tainted
sp : c3dbbe98 ip : c3dbbebc fp : c3dbbeb8
r10: 401772a0 r9 : c3dba000 r8 : c0020dc4
r7 : c01ed02c r6 : c3c14330 r5 : c3c141f4 r4 : c03ed800 r3 : c3c141f8 r2 : c3dbbe98 r1 : 00000000 r0 : c3c141f4
Flags: nzcv IRQs off FIQs on Mode SVC_32 Segment user
Control: C000717F Table: 2030C000 DAC: 00000015 Process umount (pid: 167, stack limit = 0xc3dba194)
Stack: (0xc3dbbe98 to 0xc3dbc000)
be80: c3c141f8 c0092fc8
bea0: c03ed800 00000002 c3c140d8 c3dbbed0 c3dbbebc c00d8140 c01b22d0 c3c14108
bec0: c3c14330 c3dbbee4 c3dbbed4 c00d6bc8 c00d8134 c3c142e4 c3dbbefc c3dbbee8
bee0: c0070254 c00d6b9c c3c142e4 c3e00d3c c3dbbf1c c3dbbf00 c0075ce8 c00701c0
bf00: c3c140d8 c01ed07c c3dbbf4c 00000016 c3dbbf30 c3dbbf20 c00d7058 c0075cb0
bf20: c3c142e4 c3dbbf48 c3dbbf34 c0075c00 c00d7054 00000000 00000000 c3dbbfa4
bf40: c3dbbf4c c008c0a0 c0075bb8 c3e00d3c c02e7ac4 c3db41ed 00000003 00000000
bf60: 00000001 00000001 00000000 00000000 00000000 00000000 00000000 00000000
bf80: 00000000 00000000 00001000 00086268 00000000 bebf9e6c 00000000 c3dbbfa8
bfa0: c0020c40 c008c018 00086268 c0027b40 bebf9e6c bebf9e6e 0008626a 0000006d
bfc0: 00086268 00000000 bebf9e6c 00000000 00077140 0000cc70 401772a0 00000000
bfe0: 401269a0 bebf9e58 00050f68 401269a4 60000010 bebf9e6c e3530000 1afffff5
Backtrace: [<c01b22c0>] (__down_write+0x0/0xd4) from [<c00d8140>] (jffs2_flush_wbuf_pad+0x1c/0x3c) r4 = C3C140D8 [<c00d8124>] (jffs2_flush_wbuf_pad+0x0/0x3c) from [<c00d6bc8>] (jffs2_sync_fs+0x3c/0x68) r5 = C3C14330 r4 = C3C14108 [<c00d6b8c>] (jffs2_sync_fs+0x0/0x68) from [<c0070254>] (fsync_super+0xa4/0xc4) r4 = C3C142E4 [<c00701b0>] (fsync_super+0x0/0xc4) from [<c0075ce8>] (generic_shutdown_super+0x48/0x140) r5 = C3E00D3C r4 = C3C142E4 [<c0075ca0>] (generic_shutdown_super+0x0/0x140) from [<c00d7058>] (jffs2_kill_sb+0x14/0x28) r7 = 00000016 r6 = C3DBBF4C r5 = C01ED07C r4 = C3C140D8 [<c00d7044>] (jffs2_kill_sb+0x0/0x28) from [<c0075c00>] (deactivate_super+0x58/0x6c) r4 = C3C142E4 [<c0075ba8>] (deactivate_super+0x0/0x6c) from [<c008c0a0>] (sys_umount+0x98/0xa0) r5 = 00000000 r4 = 00000000 [<c008c008>] (sys_umount+0x0/0xa0) from [<c0020c40>] (ret_fast_syscall+0x0/0x2c) r6 = BEBF9E6C r5 = 00000000 r4 = 00086268 Code: e5931004 e24b2020 e50b3020 e5832004 (e5812000)
Segmentation fault
/ # xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
The point is that there still is a prompt after this error. I can see that the partition was unmounted but trying to remount the jffs2 partition fails and the cpu hangs.
I checked if the settings of the SMC Controller are correct and i think they are.
Are there any hints or advises?
Best Regards
Mirco
_________________________________________________________________________
Mit der Gruppen-SMS von WEB.DE FreeMail können Sie eine SMS an alle Freunde gleichzeitig schicken: http://freemail.web.de/features/?mc=021179
Quoted 3 lines · Mirco Fuchs
#> umount
/mnt/jffs2The instruction aborts with the following error:
...
Quoted 1 line
Unable to handle kernel NULL pointer dereference at virtual address 00000000
...
Quoted 2 lines
Backtrace: [<c01b22c0>] (__down_write+0x0/0xd4) from [<c00d8140>] (jffs2_flush_wbuf_pad+0x1c/0x3c)
Looks like there were multiple fixes for similar problems, in addition to the patch I pointed you at on linux-arm-kernel. Patch in the latest linux-mtd code from CVS and see if it's fixed? Or if you don't need NAND flash support (you mention Intel CFI flash) then CONFIG_JFFS2_FS_NAND=n might get rid of it.
Signature · 1 line
Todd