We are definitely closer. It would appear that the jffs2 image is
invalid. Here's the output from the kernel as it tries to mount the
jffs2 image:
s3c2410-rtc s3c2410-rtc: setting system clock to 2010-05-16 12:55:12
UTC (1274014512)
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00ff0000:
0x0844 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00ff0004:
0xaaa5 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00ff0008:
0x081d instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00ff000c:
0x117a instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00ff0010:
0x81c0 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00ff0018:
0x60b4 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00ff001c:
0x62d4 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00ff0020:
0x62d4 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00ff0024:
0x62d4 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00ff0028:
0x9000 instead
Further such events for this erase block will not be printed
Empty flash at 0x00ff0218 ends at 0x00ff021c
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01ff0000:
0x0844 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01ff0004:
0xaaa5 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01ff0008:
0x081d instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01ff000c:
0x117a instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01ff0010:
0x81c0 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01ff0018:
0x60b4 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01ff001c:
0x62d4 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01ff0020:
0x62d4 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01ff0024:
0x62d4 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01ff0028:
0x9000 instead
Further such events for this erase block will not be printed
Empty flash at 0x01ff0218 ends at 0x01ff021c
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0fa600b0:
0x3fff instead
Empty flash at 0x0fa600b4 ends at 0x0fa60130
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0fa60130:
0xff3f instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0fa800b0:
0x3fff instead
Empty flash at 0x0fa800b4 ends at 0x0fa80130
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0fa80130:
0xff3f instead
Cowardly refusing to erase blocks on filesystem with no valid JFFS2
nodes
empty_blocks 1723, bad_blocks 2, c->nr_blocks 2005
VFS: Cannot open root device "mtdblock3" or unknown-block(31,3)
Please append a correct "root=" boot option; here are the available
partitions:
1f00 256 mtdblock0 (driver?)
1f01 128 mtdblock1 (driver?)
1f02 5120 mtdblock2 (driver?)
1f03 256640 mtdblock3 (driver?)
1f04 262144 mtdblock4 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-
block(31,3)
Backtrace:
[<c0035270>] (dump_backtrace+0x0/0x10c) from [<c03ad290>] (dump_stack
+0x18/0x1c)
r7:c04e4440 r6:c0521fb0 r5:c3933000 r4:c3823f40
[<c03ad278>] (dump_stack+0x0/0x1c) from [<c03ad2e0>] (panic+0x4c/
0x134)
[<c03ad294>] (panic+0x0/0x134) from [<c0008e9c>] (mount_block_root
+0x178/0x234)
r3:00000000 r2:c38520ec r1:c3823f40 r0:c046d5d0
[<c0008d24>] (mount_block_root+0x0/0x234) from [<c0009008>] (mount_root
+0xb0/0xf4)
[<c0008f58>] (mount_root+0x0/0xf4) from [<c0009144>] (prepare_namespace
+0xf8/0x190)
r7:c0521980 r6:c0021808 r5:c0021808 r4:c0021818
[<c000904c>] (prepare_namespace+0x0/0x190) from [<c00084c0>]
(kernel_init+0xf0/0x124)
r7:00000000 r6:c00203dc r5:c00208d8 r4:c00208d8
[<c00083d0>] (kernel_init+0x0/0x124) from [<c004d1a4>] (do_exit
+0x0/0x62c)
r7:00000000 r6:00000000 r5:00000000 r4:00000000
From above in the kernel boot code the driver reports the following:
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c24xx-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns
s3c24xx-nand s3c2440-nand: NAND soft ECC
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB
3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 711 at 0x0000058e0000
Bad eraseblock 1219 at 0x000009860000
Creating 5 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000000040000 : "supervivi"
0x000000040000-0x000000060000 : "param"
0x000000060000-0x000000560000 : "Kernel"
0x000000560000-0x000040560000 : "root"
mtd: partition "root" extends beyond the end of device "NAND 256MiB
3,3V 8-bit" -- size truncated to 0xfaa0000
0x000000000000-0x000040000000 : "nand"
mtd: partition "nand" extends beyond the end of device "NAND 256MiB
3,3V 8-bit" -- size truncated to 0x10000000
Any ideas? I'm going to root around in the mtd driver code to see if
can find any clues.
Cheers!!