Hello
I have compiled and tested. Using your 2.6.38.8 it works find for me.
While testing I found that when mtdparts is not defined as a kernel parameter it also works because the kernel creates the mtdparts for me (I did not know this).
# cat /proc/cmdline
console=ttyS0,115200 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs
dmesg gives
NAND device: Manufacturer ID: 0xec, Chip ID: 0xdc (Samsung NAND 512MiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 3 MTD partitions on "orion_nand":
0x000000000000-0x000000100000 : "u-boot"
0x000000100000-0x000000500000 : "uImage"
0x000000500000-0x000020000000 : "root"
So my usual NAND boot has a cmdline like:
# cat /proc/cmdline
console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs
I changed this to:
console=ttyS0,115200 mtdparts=orion_nand:0x100000@0(u-boot)ro,0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs
The problem is that when loading uImage from NAND and rootfs from USB (regardless of whether I define the 3 mtdparts or have no mtdparts), I get a stream of kernel messages like:
Checking root file system...fsck from util-linux-ng 2.17.2
uncorrectable error :
uncorrectable error :
end_request: I/O error, dev mtdblock0, sector 0
Buffer I/O error on device mtdblock0, logical block 0
uncorrectable error :
uncorrectable error :
end_request: I/O error, dev mtdblock0, sector 0
Buffer I/O error on device mtdblock0, logical block 0
uncorrectable error :
(lots more the same)
I do not get the above messages, when the 0x100000@0(u-boot)ro mtdpart is not defined or when booting from mmc. It also only seems to happen when the rootfs is on USB.
Do you know what causes the messages (or how to stop them)?