[U-Boot] start address loading initrd in ram on arm

Joren Bultheel joren.bultheel at esaturnus.com
Thu Feb 27 20:29:16 CET 2014


Great.

Exactly wat I needed to know. I'll read the documentation in the  specified
place.
Op 27 feb. 2014 18:08 schreef "Tom Rini" <trini at ti.com>:

> On Thu, Feb 27, 2014 at 05:49:47PM +0100, Joren Bultheel wrote:
> > Thank you!
> >
> > So in my situation; after loading the kernel in ram, I know where to load
> > my initrd image:
> >
> > U-Boot > printenv boot_dev
> >
> > boot_dev=mmc dev 2; ext2load mmc 2:1 0x10800000 /boot/uImage
> >
> >
> > U-Boot > run boot_dev
> >
> > mmc2(part 0) is current device
> >
> > Loading file "/boot/uImage" from mmc device 2:1 (xxc1)
> >
> > 4284096 bytes read
> >
> >
> > U-Boot > bdi
> >
> > arch_number = 0x00001194
> >
> > env_t       = 0x00000000
> >
> > boot_params = 0x10000100
> >
> > DRAM bank   = 0x00000000
> >
> > -> start    = 0x10000000
> >
> > -> size     = 0x80000000
> >
> >
> > This means that I can only use the address range between 0x10000000 and
> > 0x80000000
> > Since the kernel is loaded at address 0x10800000 with size 4284096 bytes
> > (415ec0 in hex), I can start loading my initrd at address (0x10800000 +
> > 415ec0 = ) 0x10c15ec0
> >
> > The initrd size = 27237386 bytes but this does not matter here, I give
> this
> > size as a kernel argument.
> >
> > I tested this and it works fine on my ARM machine.
>
> Please note that while this may work, it's cutting it relatively close.
> The zImage when run will decompress the kernel to near 0x10000000 and
> you've not given yourself all that much room for the BSS and so forth
> and may run into problems with slightly larger kernels.  For saftey,
> since you have so much DDR you may wish to place the initrd at more like
> 0x18800000 or simply 0x18000000 as the kernel should not be higher than
> the first 128MB but the initrd can be.  Documentation/arm/Booting in the
> kernel has more details about where things may and may not reside.
>
> --
> Tom
>


More information about the U-Boot mailing list