mtd: partition "U-boot" doesn't end on an erase block -- force read-only
小弟使用的是mini2440 256M flash,同样的内核、文件系统在mini2440 128M flash中可以正常运行,但用到256M flash上时就不正常运行,启动时输出
Creating 7 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000000080000 : "U-boot"
mtd: partition "U-boot" doesn't end on an erase block -- force read-only
ftl_cs: FTL header corrupt!
0x000000080000-0x0000000c0000 : "param"
mtd: partition "param" doesn't start on an erase block boundary -- force read-only
ftl_cs: FTL header corrupt!
0x0000000c0000-0x0000005c0000 : "Kernel"
mtd: partition "Kernel" doesn't start on an erase block boundary -- force read-only
ftl_cs: FTL header corrupt!
0x0000005c0000-0x0000025c0000 : "root1"
mtd: partition "root1" doesn't start on an erase block boundary -- force read-only
ftl_cs: FTL header corrupt!
0x0000025c0000-0x0000055c0000 : "root2"
mtd: partition "root2" doesn't start on an erase block boundary -- force read-only
ftl_cs: FTL header corrupt!
0x0000055c0000-0x000010000000 : "root3"
mtd: partition "root3" doesn't start on an erase block boundary -- force read-only
ftl_cs: FTL header corrupt!
0x000000000000-0x000010000000 : "nand"
,
最终的结果是
yaffs: dev is 32505859 name is "mtdblock3" ro
yaffs: passed flags ""
yaffs: dev is 32505859 name is "mtdblock3" ro
yaffs: passed flags ""
List of all partitions:
1f00 512 mtdblock0 (driver?)
1f01 256 mtdblock1 (driver?)
1f02 5120 mtdblock2 (driver?)
1f03 32768 mtdblock3 (driver?)
1f04 49152 mtdblock4 (driver?)
1f05 174336 mtdblock5 (driver?)
1f06 262144 mtdblock6 (driver?)
No filesystem could mount root, tried: cramfs vfat msdos iso9660 ntfs romfs fuseblk yaffs yaffs2
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)
[<c002f5c0>] (unwind_backtrace+0x0/0xf0) from [<c0310e44>] (panic+0x54/0xe0)
[<c0310e44>] (panic+0x54/0xe0) from [<c0008ebc>] (mount_block_root+0x1c8/0x208)
[<c0008ebc>] (mount_block_root+0x1c8/0x208) from [<c0009150>] (prepare_namespace+0x160/0x1b8)
[<c0009150>] (prepare_namespace+0x160/0x1b8) from [<c0008468>] (kernel_init+0x10c/0x14c)
[<c0008468>] (kernel_init+0x10c/0x14c) from [<c002ae4c>] (kernel_thread_exit+0x0/0x8)
,
我不太清楚两块 flash除了在大小上有差别外,还有什么地方有差别,我的每一块分区都是128K的整数倍,
但还是会提示这样的错误,当然也是按分区的设置写入的文件系统。
有哪位大哥知道这个错误?
请拯救小弟!
谢谢