compile error when using MEMREADOOB in do_mounts.c.

Thomas Gleixner tglx at
Sat Jan 4 15:32:18 EST 2003

On Friday 03 January 2003 10:22, Paul Wong wrote:
> Firstly, thanks Thomas,
> Let me to explain my system: I separate three partitions of NAND flash
> (16MB),
> /dev/mtd0   for kernel image , use dd if=xxx.img of=/dev/mtd0
This works only, if you have no bad blocks in your mtd0 partition

> /dev/mtd1   for rootfs image , use dd if=roofts.img of=/dev/mtd1
Same as above

> /dev/mtd2   for jffs2 filesystem

Where do you boot from ? I assume NOR-FLASH. Do you have a bootloader there ?
You should modify your bootloader to program the kernel image either to the 
NOR-FLASH itself or to the NAND-FLASH with respect to possible bad blocks . 
Then your bootloader should load the kernel image from NAND bad block aware 
to RAM for decrompression or you decompress from your NOR-FLASH.
There is no need to have a compressed rootfs. You can also put your root fs on 
JFFS2, which has compression too. This will save you RAM-space. Also for this 
image you need your NAND and bad block aware bootloader utility to program 
the image to the NAND chip.

> Firstly, system decompress and run the compressed kernel image in mtd0,
> then the kernel (kernel 2.4.20)will decompress the rootfs image in mtd1 to
> ramdisk. ( I modified the do_mounts.c to do it). Finally, I success to boot
> up and run normal. But, I see fill_inbuf() in do_mounts.c, it only use the
> read(..) functon to get the content of the rootfs.img (/dev/mtd1), is it
> care the bad block??

linutronix - competence in embedded & realtime linux
mail: tglx at

More information about the linux-mtd mailing list