[U-Boot] Can physical flash initramfs cpio address be given to bootm?

Brian Hutchinson b.hutchman at gmail.com
Wed Mar 17 20:33:37 CET 2010


Can I use the physical flash address of a initramfs with the u-boot
bootm command?  The kernel doesn't appear to like it .... see below.

I'm not sure if the problem I've having is a kernel or u-boot issue.
I posted on the ARM linux list too so forgive me if you are on both
lists.

I need a initial ram filesystem and don't want it built into the
kernel so I've built an external initramfs cpio.gz.

I'm currently loading my cpio initramfs into u-boot via tftp and then
providing the initrd= bootarg which works.

I've tried to wrap the cpio with mkimage both with -a 0x0 -e 0x0 and a
RAM address such as -a 0x4000000 -e 0x4000000 (the location I tftp the
initramfs to)

With boths types if mkimage's mentioned above, when I do a bootm
0x20080000 (physical flash location of kernel)
0x20280000 (mkimage of cpio.gz made with -T ramdisk) the cpio is
loaded into ram but the physical
flash address of the initramfs gets passed to kernel via ATAGS and the
kernel doesn't like it:

INITRD: 0x20280040+0x00c8bdb6 extends beyond physical memory - disabling initrd

I thought I saw a patch that allowed initramfs to come from physical
media (flash) but it looks like I currently have to copy the initramfs
to ram right now and provide the initrd= which I would like to get
away from since I don't want to have to touch u-boot env vars every
time the cpio changes.

I don't know if I'm heading in the weeds but my thought were to either
modify kernel to allow initramfs to come from outside external ram
(the patch I mentioned) which would be my NOR flash, or modify my
u-boot so the ATAGS passed to the kernel would include the -a or -e
address from the mkimage header.

How do you all load a initramfs from flash???

I'm using 2.6.28 kernel and u-boot 1.1.6.

Regards,

Brian


More information about the U-Boot mailing list