[U-Boot] zImage on ARM

Scott Wood scottwood at freescale.com
Thu Sep 9 18:28:16 CEST 2010


On Thu, 9 Sep 2010 09:26:39 +0200
Wolfgang Denk <wd at denx.de> wrote:

> Dear Scott Wood,
> 
> In message <20100908160001.374ff382 at schlenkerla.am.freescale.net> you wrote:
> >
> > > In message <20100908153455.527fcd70 at schlenkerla.am.freescale.net> you wrote:
> > > >
> > > > > > > Why not use uImage like we do with other architectures? 
> > > > > > 
> > > > > > Whereas they'd say why can't U-Boot accept a simple binary, and just
> > > > > > run it in place without copying, like any other loader can?
> > > > > 
> > > > > U-Boot can do that. Use the "go" command.
> > > > 
> > > > Will things like the device tree get passed just as if the bootm
> > > > command were used?
> > > 
> > > No, of course not.  You asked about starting "a simple binary".
> > > 
> > > I warned you that you might lose some nice features...
> > 
> > What does passing a device tree have to do with the image format?
> 
> Nothing.

Then why does u-boot only support certain calling conventions with
certain image formats?

> Now you come up asking for fancy features like passing device tree
> information (and probably boot arguments as well? and ATAGs in case of
> an ARM kernel? and ... ?) which goes way beyond the "just run it in
> place", and also way beyond what "any other loader can".

Are you really claiming that booting a Linux zImage is "way beyond what
any other loader can" do?  I'm pretty sure I've seen that happen on
RedBoot, PlanetCore, and probably half a dozen others that I've
forgotten.

> Yes, U-Boot supports all this stuff. It is supported in the context of
> U-Boot images, usign FIT images as the recommended format, and still
> supporting the old legacy image format.

So in other words, for booting an OS, U-Boot insists on particular
image formats.

> > It seems like it should be an orthogonal issue.  At most it would
> > require the user to specify an argument to the go command, that
> 
> The go command takes arguments, which get passed to the started
> application in the standard C calling convention. It is up to the
> image to interpret these, then.

It passes *text* arguments supplied by the command line, in argc/argv
format.  Which seems like it's not intended to be an arbitrary image
loading command, but rather a facility to execute things that look and
feel like shell commands.

> > > But then - which other popular ARM boot loader supports passing a
> > > device tree?  Or which other popular embedded boot loader?
> > 
> > It's not a matter of whether it's a device tree versus something else,
> > but whether it is whatever Linux normally expects a loader to pass
> > (e.g. ATAGs).
> 
> For a "simple binary" that we "just run in place"?

Yes.  "simple" refers to the image format, not the calling convention.

-Scott



More information about the U-Boot mailing list