[U-Boot-Users] Using tools/mkimage

Wolfgang Denk wd at denx.de
Tue Aug 5 09:47:30 CEST 2003

In message <20030805073513.GA32163 at buici.com> you wrote:
> Nice to see some organized documentation.  I'm not finding mkimage in

Yes :-) Sorry for antedating the official announcement. Detlev?

> the table of contents.  Where is it described?

Sorry,  it  ain't  (yet).  It's  implicitely  hitten  in  the  kernel
Makefiles. But you made your point, now I know what to add next :-)

> > It makes no sense to use a zImage file. It was one of the  intentions
> > of  U-Bot  (well,  it  was PPCBoot then) to get rid of this bootstrap
> > loader.
> Perhaps it is strong to say "no sense".  In fact, there is a good

It makes no sense. U-Boot provides an interface  which  (1)  includes
all of the functionality of the bottstrap loader [plus much more] and
(2) which assumes the kernel call interface, which is not used by the
bootstrap loader.

> reason to use zImage when u-boot is one of several methods of booting
> a kernel.  It helps us to know that the same exact code is running in
> every situation.

I think it is the kernel you  care  about  right?  So  run  the  same
kernel,  once  by  wrapping  it with a bootstrap loader into a zImage
file, and once by wrapping it with mkimape into an uImage file.

> > I don't see any use of the "-e" option in this command. And zImage is
> > not what you want. If you want to use an  uncompressed  kernel  image
> > this should be something like
> > 
> > 	mkimage -A arm -O linux -T kernel -C none -a 0x0C008000 \
> > 	-e 0x0C008000 -n 'ARM Linux' \
> > 	-d arch/arm/boot/compressed/piggy uImage
> I'm not sure what you mean.  Setting -a sets -e automatically.

Maybe. But load address and entry point address are  not  necessarily
the same.

> Where do you get a uImage file?

As file "uImage" - the last argument in above call.

> I'm not sure why, but it appears to be working now.  It is probable
> that one of the components was out-of-sync.

What you are doing is bogus. "bootm" is meant to start  images  which
have  the expected kernel interface. If you load a zImage file (let's
ignore for a moment that this makes no sense :-) you should  use  the
"go"  command  toi  start  it  as this provides the interfqce for the
zImage bootstrap loader (i. e. none).

> I'm on to a new problem.  For some reason, a kernel booted from blob
> returns a bogo-mips value of 79 while the same kernel booted from
> u-boot returns a bogo-mips value of 39.  It's an intriguing mystery.

Different  initialization  of  the  hardware?  Different  passing  of
parameters?  When  booting a image with a non-matching call interface
many things can go wrong.

Best regards,

Wolfgang Denk

Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
"The whole world is about three drinks behind."     - Humphrey Bogart

More information about the U-Boot mailing list