[U-Boot] [PATCH] arm: add 8-byte alignment for ABI compliance before board_init_f

Heiko Schocher hs at denx.de
Fri Nov 12 09:05:28 CET 2010


Hello Albert,

Albert ARIBAUD wrote:
> Le 12/11/2010 07:53, Heiko Schocher a écrit :
>> suggested from Daniel Hobi<daniel.hobi at schmid-telecom.ch>
>>
>> Tested on following boards:
>> arm1136: qong
>> armv7: omap3_beagle
>> arm926ejs: magnesium, tx25
>>
>> Signed-off-by: Heiko Schocher<hs at denx.de>
>> cc: Daniel Hobi<daniel.hobi at schmid-telecom.ch>
>> cc: Albert ARIBAUD<albert.aribaud at free.fr>
> 
> I'm a bit uneasy about having the symbol unaligned and the aligning done
> by the code (and in different places):

ok.

>>       ldr    sp, =(CONFIG_SYS_INIT_SP_ADDR)
>> +    bic    sp, sp, #7 /* 8-byte alignment for ABI compliance */
> 
>> -    gd = (gd_t *) (CONFIG_SYS_INIT_SP_ADDR);
>> +    gd = (gd_t *) ((CONFIG_SYS_INIT_SP_ADDR)&  ~0x07);
>>
> 
> There is always a risk that overhauls of the code, or new uses elsewhere
> in the code, forget about the alignment constraint and use the symbol
> straight away, which could cause all sorts of hard to debug issues.

Ok.

> Could we not align the symbol value itself so that the code simply uses
> the symbol?

Hmm.. but users can forgot to align the symbol ... and I think, code
should not change that often in this place ...

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list