Unable to access JFFS2 filesystem

thomaspang at shaw.ca thomaspang at shaw.ca
Tue Dec 23 14:25:27 EST 2003


I repost this message as I do not get any response.

I integrated the MTD snapshot dated 2003/12/11 into my linux kernel 2.4.22.

Couple questions:

-  cfi_cmdset_0002: Disabling fast programming due to code brokenness.  Any patch to cfi_cmdset_0002.c to fix this.

- What may be causes of those jffs2_scan_eraseblock(): Mgaic bitmask 0x1985 not found at ...?   I have browsed the linux-mtd thread and still haven't figured it out.

- When I accessed the mounted JFFS2 file system, I got "Chip not ready after erase suspended".  Subsequent access gives "Input/output error".

Your help is greatly appreciated.


I turned on the CFI debugging flag and below show the detailed information of the flash that I am using.

Number of erase regions: 3
Primary Vendor Command Set: 0002 (AMD/Fujitsu Standard)
Primary Algorithm Table at 0040
Alternative Vendor Command Set: 0000 (None)
No Alternate Algorithm Table
Vcc Minimum:  2.7 V
Vcc Maximum:  3.6 V
No Vpp line
Typical byte/word write timeout: 16 µs
Maximum byte/word write timeout: 512 µs
Full buffer write not supported
Typical block erase timeout: 1024 ms
Maximum block erase timeout: 16384 ms
Chip erase not supported
Device size: 0x800000 bytes (8 MiB)
Flash Device Interface description: 0x0002
  - supports x8 and x16 via BYTE# with asynchronous interface
Max. bytes in buffer write: 0x1
Number of Erase Block Regions: 3
  Erase Region #0: BlockSize 0x2000 bytes, 8 blocks
  Erase Region #1: BlockSize 0x10000 bytes, 126 blocks
  Erase Region #2: BlockSize 0x2000 bytes, 8 blocks
phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit mode

phys_mapped_flash: Found 1 x16 devices at 0x2000000 in 16-bit mode
 Amd/Fujitsu Extended Query Table at 0x0040
  Silicon revision: 2
  Address sensitive unlock: Required
  Erase Suspend: Read/write
  Block protection: 1 sectors per group
  Temporary block unprotect: Supported
  Block protect/unprotect scheme: 4
  Number of simultaneous operations: 119
  Burst mode: Not supported
  Page mode: Not supported
  Vpp Supply Minimum Program/Erase Voltage: 8.5 V
  Vpp Supply Maximum Program/Erase Voltage: 9.5 V
  Top/Bottom Boot Block: 8x8KiB sectors at top & bottom, no WP
phys_mapped_flash: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 2
Using word write method
cfi_cmdset_0002: Disabling fast programming due to code brokenness.
...
Using physmap partition definition
Creating 4 MTD partitions on "phys_mapped_flash":
0x00000000-0x00800000 : "Physically mapped flash"
mtd: Giving out device 0 to Physically mapped flash
0x00000000-0x00400000 : "boot"
mtd: Giving out device 1 to boot
0x00400000-0x00500000 : "root"
mtd: Giving out device 2 to root
0x00500000-0x00800000 : "fs"
mtd: Giving out device 3 to fs
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 512)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
Fast Floating Point Emulator V0.9 (c) Peter Teichmann.
mtdblock_open
ok
VFS: Mounted root (cramfs filesystem).
Freeing init memory: 48K
init started:  BusyBox v0.60.5 (2003.12.11-19:24+0000) multi-call binary

...

The system is successfully booted up.

# uname -a
Linux (none) 2.4.22 #67 Tue Dec 23 10:50:28 PST 2003 armv5EJb unknown

# more /proc/mtd
dev:    size   erasesize  name
mtd0: 00800000 00010000 "Physically mapped flash"
mtd1: 00400000 00010000 "boot"
mtd2: 00100000 00010000 "root"
mtd3: 00300000 00010000 "fs"

# mount -t jffs2 /dev/mtdblock3 /mnt
mtdblock_open
ok
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00051000: 0xc38f instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00051004: 0xfa34 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00051008: 0x18d9 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0005100c: 0xea31 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00051010: 0xd01e instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00051014: 0x3a50 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00051018: 0xc271 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0005101c: 0x017f instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00051020: 0x7a20 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00051024: 0x9eb2 instead
Further such events for this erase block will not be printed
# cd mnt
# ls
Chip not ready after erase suspended: status = 0x1985
error -5 reading node at 0x0000003c in get_inode_nodes()
jffs2_get_inode_nodes() for ino 2 returned -5
ls: ./20031209: Input/output error
Chip not ready after erase suspended: status = 0x1985
error -5 reading node at 0x00000278 in get_inode_nodes()
jffs2_get_inode_nodes() for ino 3 returned -5
ls: ./20031210: Input/output error
Chip not ready after erase suspended: status = 0x1985
error -5 reading node at 0x000006cc in get_inode_nodes()
jffs2_get_inode_nodes() for ino 4 returned -5
ls: ./20031211: Input/output error
Chip not ready after erase suspended: status = 0x1985
error -5 reading node at 0x00000af0 in get_inode_nodes()
jffs2_get_inode_nodes() for ino 5 returned -5
ls: ./20031217: Input/output error
Chip not ready after erase suspended: status = 0x1985
error -5 reading node at 0x00001254 in get_inode_nodes()
jffs2_get_inode_nodes() for ino 6 returned -5
ls: ./20031218: Input/output error
Chip not ready after erase suspended: status = 0x1985
error -5 reading node at 0x00001524 in get_inode_nodes()
jffs2_get_inode_nodes() for ino 7 returned -5
ls: ./20031219: Input/output error
# ls
ls: ./20031209: Input/output error
ls: ./20031210: Input/output error
ls: ./20031211: Input/output error
ls: ./20031217: Input/output error
ls: ./20031218: Input/output error
ls: ./20031219: Input/output error


(Please note that 2003XXXX are simply plain text files in the JFFS2 filesystem)



- Thomas





More information about the linux-mtd mailing list