[U-Boot] [PATCH] arm: Allow u-boot to run from offset base address

Albert ARIBAUD albert.u.boot at aribaud.net
Wed Jun 11 08:45:58 CEST 2014


Hi Wolfgang,

On Wed, 11 Jun 2014 06:49:28 +0200, Wolfgang Denk <wd at denx.de> wrote:

> Dear Steve,
> 
> In message <53979199.5010100 at broadcom.com> you wrote:
> > 
> > OK - I think that one of the alternate proposals would be to 
> > conditionally reserve a "32 byte block" prior to the _start symbol (in 
> > "arch/arm/cpu/armv8/start.S") which would then be filled in by a 
> > post-processing step... This could be implemented by:
> 
> Yes, that illustrates the idea.  However, this implementation suffers
> from the use of an #ifdef where none is actually needed.  Instead, you
> can create your own source file which defines the header; this could
> be then even in it's own segment, say:
> 
> your_header.c:
> 
> struct your_header {
> 	u_int32[8];
> } your_header __attribute__ ((__section__ (".your_hdr")));
> 
> All that is needed then is to make the linker place this segment in
> front of the text segment.
> 
> This avoids an ugly #ifdef, and also modifications in the common code.

Agreed and seconded.

Plus, using a dedicated 'header' section and a separate C source file
for the header makes it automatic that if no input 'header' section
were provided then no output 'header' section would be emitted; IOW,
we would not need two different linker scripts, a single one would be
useable for both 'headerless' and 'headerful' image types.

Also, the alignment constraint should be configurable.

> Best regards,
> 
> Wolfgang Denk

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list