[U-Boot] Loading uImage into RAM

Wolfgang Denk wd at denx.de
Tue May 6 16:35:59 CEST 2014


Dear Belisko Marek,

In message <CAAfyv34gspt4whV-sa=mo0fFunZfX8FA6+=e7jRdpZ59hygENw at mail.gmail.com> you wrote:
> Hi Abdullah,
> 
> On Tue, May 6, 2014 at 11:54 AM, Abdullah YILDIZ
> <abdullah.mails at gmail.com> wrote:
> > Hi Belisko,
> >
> > On Tue, May 6, 2014 at 12:34 PM, Belisko Marek <marek.belisko at gmail.com> wrote:
> >> Hi Abdullah,
> >>
> >> On Tue, May 6, 2014 at 10:55 AM, Abdullah YILDIZ
> >> <abdullah.mails at gmail.com> wrote:
> >>> I'm trying to understand how u-boot loads zImage into RAM.
> >>>
> >>> mkimage is called as
> >>>
> >>> mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008040
> >>> -d arch/arm/boot/zImage /bootImage/uImage
> >>>
> > Why is entry point different from load address of uImage?
> It is set to skip 64bytes (0x40) of mkimage header.

Actually the configuration given here looks bogus.  The 64 byte
header of the legacy image format does NOT get copied to the address
range starting at load address, so you actually start execution at a
64 byte offset within your binary.  This is likely incorrect.

A common error is to misunderstand that the "loadaddr" variable used
in U-Boot as target address for the image download has _nothing_ to do
with the "loadaddr" parameter of the mkimage command , which gives the
address where the "bootm" command will copy the image to (eventually
uncompressing it).  Unfortunately ARM never adapted to use this.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Die Scheu vor Verantwortung ist die Krankheit unserer Zeit.
                                                 -- Otto von Bismarck


More information about the U-Boot mailing list