[U-Boot] armv8 relocation questions

Wolfgang Denk wd at denx.de
Sun May 18 21:51:28 CEST 2014


Dear Jeroen,

In message <1400416665.2394.20.camel at yellow> you wrote:
> 
> > > 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.
> > 
> > Sorry, I don't understand anything here.  At which exact place is
> > there any such 4 k alignment restriction?  When we relocate U-Boot, we
> > just process a list of addresses.  Even if the start of the image is
> > aligned to a 4 k boundary, there are a zillion of other addresses that
> > are not, and these can be relocated just fine.
> > 
> 
> The following document [1] mentions:
> 
> "ADRP Xd, label
...
> And apparently gcc choose to use it as such. Since the instructions in

Where exactly does it chose to do so?  I cannot understand why that
should be a problem for _start, but not for any of the other symbols
we're relocating?

> question are relative to the most significant bits of the pc it does not
> need fixups, so it is not included in the "list of addresses" you
> mention. The compiler does create the 4k requirement though by using the
> instruction the way it does.

Sorry, I cannot follow.  where exactly does this happen, and why
there, and not anywhere else?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"Any excuse will serve a tyrant."                             - Aesop


More information about the U-Boot mailing list