[PATCH 8/15] zImage: Cleanup and improve zImage entry point

David Gibson david at gibson.dropbear.id.au
Fri Mar 16 11:18:19 EST 2007


On Thu, Mar 15, 2007 at 04:02:30PM -0700, Mark A. Greer wrote:
> On Mon, Mar 05, 2007 at 02:24:52PM +1100, David Gibson wrote:
> 
> <snip>
> 
> > 1) It can define a _zimage_start, in which case the platform code gets
> >    control from the very beginning of execution.  In this case the
> >    platform code is responsible for relocating the zImage if necessary,
> >    clearing the BSS, performing any platform specific initialization, and
> >    finally calling start() to load and enter the kernel.
> > 
> > 2) It can define platform_init().  In this case the generic crt0.S
> >    handles initial entry, and calls platform_init() before calling
> >    start().  The signature of platform_init() is changed, however, to
> >    take up to 5 parameters (in r3..r7) as they come from the platform's
> >    initial loader, instead of a fixed set of parameters based on OF's
> >    usage.
> 
> <snip>
> 
> > In addition the wrapper script is rearranged to ensure that the
> > platform .o is always linked first.  This means that platforms where
> > the zImage entry point is at a fixed address or offset, rather than
> > being encoded in the binary header can be supported using option (1).
> 
> But now you don't have a fixed address for _zimage_start when you use
> option 2).  I don't know what address _zimage_start is at so I can't
> start it.  This is an issue for fw's that don't understand ELF and simply
> download a bucket of bits.  You have to tell the fw where to jump to
> (e.g., go 0x410010).

The patch already includes an example that deals with this case,
uImage.  The wrapper script pulls the ELF entry point information out
using objdump and puts it into uboot's structure.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson



More information about the Linuxppc-dev mailing list