[U-Boot] uboot kernel rejects filesystem
Detlev Zundel
dzu at denx.de
Tue May 12 11:58:05 CEST 2009
Hi Bharat,
> I am very new to u-boot.
Welcome aboard!
> I have kernel image, which I loaded to NOR of my board and with bootm,
> control passes to kernel and it starts booting.
> There is panic in kernel: since it can not find the file-system. I am
> afraid, I did make trivial mistake.
>
> I have flashed squashfs filesystem image to NOR @ address NOR1 <I did not
> define any partition>.
> I do not have MTD support.
>
> Now I tried booting like after setting
>
>
> setenv kernel_addr 0xBF060000 <<Note this has u-boot hdr generated
> form mkimage>>
> setenv ramdisk_addr 0xBF260000 <<Note this does not have u-boot hdr
> generated form mkimage>>
> setenv bootargs 'filesystem=squashfs'
> I do bootm ${kernel_addr} ${ramdisk_addr}
This is not correct. The second argument for bootm is a "real ramdisk"
or "initrd" in Linux speak. The squashfs filesystem that you use needs
a MTD device and thus can not be passed in this way.
> I do get error from U_BOOT that :
> *Wrong Ramdisk Image Format
> Ramdisk image is corrupt or invalid
That's to be expected, because U-Boot wants the initrd to be wrapped
with mkimage also - which is irrelevant in your case though.
> *I am sure that I have done something wrong in this process:
>
> Few Questions which I could not find the answer:
> 1. Can I nor-flash the image without u-boot hdr.
Sure you can. You should flash it to the address of a partition defined
inside of the Linux MTD subsystem.
> 2. Is it necessary to have MTD partition defined.
You will of course need to define MTD partitions inside of Linux -
whereas in U-Boot this is optional.
> 3. Do we have any document which specify the boot arguments in context of
> U_BOOT. I tried denx website. I could not figure out much. May be I do not
> what to search for.
What exactly do you mean by "boot arguments"?
> Any help would be highly appreciated.
To solve your problem, do the following:
1. Find out which MTD device (in Linux) you want to use to hold the
squashfs image. I'll assume mtd0 below.
2. If you do not want to use partitioning in U-Boot then determine the
physical address that this device maps to
3. Flash the squasfs image to that address
4. Be sure to include "root=/dev/mtdblock0" on the Linux command line so
Linux knows where it finds its rootfs.
Cheers
Detlev
--
We support democracy, but that doesn't mean we have to support
governments that get elected as a result of democracy.
-- George W. Bush - March 30, 2006
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de
More information about the U-Boot
mailing list