jffs2/mtd on flash Spansion S29GL064AR4
Teun Grinwis
teun at adesys.nl
Mon May 14 03:02:31 EDT 2007
Hello all,
Can someone give hint where to start debug searching ??
I use uCLinux distribution 20060511 2.16.16-uc0 on custom MCF 5208 board.
With flash, Spansion S29GL064AR4. Debug for mtd, jffs2 set to noisy.
When I mount a mtdblock on jffs2 I got the following error:
See below.
Command: mount -t jffs2 /dev/mtdblock3 /mnt
Command:
Command:
Execution Finished, Exiting
mtdblock: read on "Romfs" at 0x3d400, size 0x200
MTD do_erase_oneblock(): ERASE 0x000a0000
*** ILLEGAL INSTRUCTION *** FORMAT=4
Current process id is 9
BAD KERNEL TRAP: 00000000
PC: [<00000000>]
SR: 2718 SP: 402cfcec a2: 40281770
d0: 00002710 d1: 00000001 d2: 00000000 d3: 400140f4
...........
I can run my image successful on Intec 5208EVB
My MTD partitions are as follows (btw i did not change flash name string):
------------------------
Am29BDD160G 2.5v flash device (2MB): Found 1 x16 devices at 0x0 in 16-bit
bank
Amd/Fujitsu Extended Query Table at 0x0040
cfi_send_gen_cmd():,40 cmd=98 addr=00000055 base=00000000 build
addr=000000aa cm
d_val=00000008
cfi_send_gen_cmd():,41 cmd=f0 addr=00000000 base=00000000 build
addr=00000000 cm
d_val=00000040
cfi_send_gen_cmd():,42 cmd=ff addr=00000000 base=00000000 build
addr=00000000 cm
d_val=00000040
Using buffer write method
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Creating 3 MTD partitions on "Am29BDD160G 2.5v flash device (2MB)":
0x00000000-0x00040000 : "dBUG (256K)"
mtd: Giving out device 2 to dBUG (256K)
0x00040000-0x000c0000 : "User FS (512K)"
mtd: Giving out device 3 to User FS (512K)
0x000c0000-0x00200000 : "Kernel + RootFS (1280K)"
mtd: Giving out device 4 to Kernel + RootFS (1280K)
m520xevb ram probe(0x40150020,de000,4): de000 at 40150020
m520xevb ram probe(0x40150020,de000,4): de000 at 40150020
do_map_probe(): name=map_ram <5>Creating 1 MTD partitions on "RAM":
0x00000000-0x000de000 : "Romfs"
mtd: Giving out device 5 to Romfs
init_m520x: Root filesystem maj:31 mtdblock:5
----------------------------
I mount jffs2 on "User FS", addresses 0x40000 - 0xc0000
I can run my image successful on the EVB see attached file Log_uclinux_evb.
I started all from a clean flash, erase flash, program dBUG, dn image.bin,
exec image.
When starting on EVB, jffs2 is initializing "User FS" by MTD
do_erase_oneblock,
MTD do_write_oneword(s) 0x..0 - 0x..a for all sectors in "User FS", startup
successful.
When starting on custom board *** ILLEGAL INSTRUCTION *** occurs after the
first
MTD do_erase_oneblock(), see attached file Log_uclinux_ads4010, startup
unsuccessful.
It seems that the error has something todo with (erase) timing ?? since in
call trace:
...
BUG: pdflush/9, lock held at task exit time!
[403b6446] {alloc_super}
.. held by: pdflush: 9 [402b2330, 115]
... acquired at:
After further investigation it seems that in
cfi_cmdset_0002.c:do_erase_oneblock,
the code execution does not reach: spin_unlock(chip->mutex).
Any suggestions, to proceed ???
Thanks in advance,
Teun Grinwis
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Log_uclinux_evb
Type: application/octet-stream
Size: 53388 bytes
Desc: not available
Url : http://lists.infradead.org/pipermail/linux-mtd/attachments/20070514/2adc4b4a/attachment.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Log_uclinux_ads4010
Type: application/octet-stream
Size: 35189 bytes
Desc: not available
Url : http://lists.infradead.org/pipermail/linux-mtd/attachments/20070514/2adc4b4a/attachment-0001.obj
More information about the linux-mtd
mailing list