[U-Boot] RFC: Aligning arch initialisation sequences
Albert ARIBAUD
albert.aribaud at free.fr
Sun Nov 14 21:05:27 CET 2010
Le 14/11/2010 20:34, Graeme Russ a écrit :
> On 15/11/10 06:23, Wolfgang Denk wrote:
>> Dear Albert ARIBAUD,
>>
>> In message<4CE0221A.7030502 at free.fr> you wrote:
>>>
>>> Alright, then I think we should document how we comply, or do not
>>> comply, with GNU EABI / AAPCS (maybe a README.arm that people could read
>>> up) -- and I think if there is a way to access GD both before and after
>>> relocation without making a register unavailable to the whole u-boot
>>> code, then we should use it.
>>
>> By the way - it should be not difficult to use a normal extern pointer
>> to reference the global data; see
>> "arch/powerpc/include/asm/global_data.h":
>>
>> 194 #if 1
>> 195 #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r2")
>> 196 #else /* We could use plain global data, but the resulting code is bigger */
>> 197 #define XTRN_DECLARE_GLOBAL_DATA_PTR extern
>> 198 #define DECLARE_GLOBAL_DATA_PTR XTRN_DECLARE_GLOBAL_DATA_PTR \
>> 199 gd_t *gd
>> 200 #endif
>
> I think you will find this peculiar to PowerPC
I don't think Wolfgang's idea is actually processor-specific.
Each processor has a way to define globals, which end up in the
initialized data or bss area. BSS is not available before relocation,
but initialized data is, and remains so after relocation.
So if we define gd as an initialized pointer (residing in the
initialized data area), it will be available both before and after
relocation.
Before relocation, this pointer will be read-only. We can set it at
compile time if we know for each arch (or board) a good address in RAM
or IRAM where gd can exist.
After relocation, the pointer becomes read-write: we can copy gd content
from (I)RAM to RAM if necessary and then update the gd pointer.
> What you are talking about is exactly how x86 defines gd, but for x86, gd
> is not accessible until after relocation
Could it become accessible with the idea I expose above?
> Regards,
>
> Graeme
Amicalement,
--
Albert.
More information about the U-Boot
mailing list