[U-Boot] armv8 relocation questions

fenghua at phytium.com.cn fenghua at phytium.com.cn
Sat May 17 04:13:54 CEST 2014


Hi Jeroen,

> Hello Tom,
> 
> On vr, 2014-05-16 at 17:15 -0400, Tom Rini wrote:
>> On Fri, May 16, 2014 at 10:28:25PM +0200, Wolfgang Denk wrote:
>>> Dear Darwin,
>>> 
>>> In message <53763B78.6030801 at broadcom.com> you wrote:
>>>> 
>>>> 3. Fixed offset case:
>>>> CONFIG_SYS_TEXT_BASE = 0x88000020
>>> 
>>> You completely fail to respond to my repeated statement that a
>>> CONFIG_SYS_TEXT_BASE like this is bogus.
>> 
>> This.  What the heck is going on?  CONFIG_SYS_TEXT_BASE is where the
>> text section ends up, and the rest of the binary that follows, until we
>> relocate.  If we're being loaded by something else, it needs to be
>> placing us at the right spot.  If there's some header on top of the
>> image to be considered by the loader, adjust where THAT loads us.  If we
>> cannot, then you must change CONFIG_SYS_TEXT_BASE around.  Pad things
>> up a bit for proper alignment.  It seems where somewhere around "Doctor,
>> it hurts when I hit myself with a hammer!" and can't stop hammering our
>> poor finger.
> 
> 
> Not really I guess, I read it as "Doctor, it hurts when I hit myself
> with a hammer!" But morphine prevents it to hurt, so everybody should
> use morphine.
> 
> But a bit more serious, as far as understood it u-boot is loaded to the
> CONFIG_SYS_TEXT_BASE being set, but not aligned to the requirements of
> adrp (which assumes 4k). Did someone find a decent description of adrp
> and how it should be relocated? Is adrp always required or an
> optimization?
We can not make gcc-aarch64 do not use adrp instruction when constructing address of label.
So, I think the 4kb alignment would be a requirement or restriction. Gcc did not declare it explicitly
due to in normal world memory are allocated with page aligned.
If u-boot for aarch64 want to be compiled at address not 4kb aligned the relocated address
should also be shifted with the same offset.

David





More information about the U-Boot mailing list