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

Heiko Schocher
2010-11-12T08:05:28Z

Hello Albert,

Albert ARIBAUD wrote:
> Le 12/11/2010 07:53, Heiko Schocher a ?crit :
>> suggested from Daniel Hobi<daniel.hobi@schmid-telecom.ch>
>>
>> Tested on following boards:
>> arm1136: qong
>> armv7: omap3_beagle
>> arm926ejs: magnesium, tx25
>>
>> Signed-off-by: Heiko Schocher<hs@denx.de>
>> cc: Daniel Hobi<daniel.hobi@schmid-telecom.ch>
>> cc: Albert ARIBAUD<albert.aribaud@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