Dear Graeme Russ, Dear All,
> On 10/11/10 10:35, Mike Frysinger wrote:
>> On Sunday, November 07, 2010 05:06:26 Graeme Russ wrote:
>>> Should all architectures strive to look as much like one another as
>>> possible? Should we accept that maybe this particular issue be thrown in
>>> the too hard basket?
>>
>> imo, we should strive to have these things in one common place and not just
>> have the different files look the sam
>
> I was afraid someone would say that. I've been having a look and a think
> about the situation for x86, and I cannot come up with a sane way to
> emulate the way the global data pointer is handled by the other arches.
>
> I essence, the gd pointer is a unique global variable available prior to
> relocation. On all other arches, this is achieved by using a reserved
> register which I do not have the luxury of on x86 :(
>
> Unless I can resolve this, I cannot move x86 in line with the other arches
> (i.e. init functions can only be done after relocation).

<Ducks><Flame shield>
I *personally* prefer code without tool-chain specific, out of "C"
constructs. So I would be fine with passing gd as a parameter to all
pre-relocation functions. The way they are called with a function array
that would probably only marginally increase code size. And instead of
all the funky stack calculations to get the space for gd, it could be
achieved in a much simpler way:

in asm: set stack to end (or begin) of SRAM (or whatever)

in c:
board_early_init(void)
{
        gd_t    auto_gd;
        ...
        call all pre-relocation functions with &auto_gd as parameter
        ...
        relocate and fixup (preferably in C) - would probably
        have arch-specific parts in the ELF fix-up
        ...
        memcpy (&static_gd, &auto_gd, sizeof auto_gd);
        ...
        setup final stack and jump to relocated code...
        that should be a *small* assembly helper function
}

You get the idea ;)

</Flame Shield></Ducks>

Best Regards,
Reinhard
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to