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

Albert ARIBAUD
2014-06-11T06:45:58Z

Hi Wolfgang,

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

> Dear Steve,
>
> In message <53979199.5010100@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.