[U-Boot] [PATCH 03/10] x86: Permit bootstage and timer data to be used prior to relocation
Simon Glass
sjg at chromium.org
Fri Dec 14 23:35:02 CET 2012
Hi Graeme,
On Fri, Dec 14, 2012 at 2:15 PM, Graeme Russ <graeme.russ at gmail.com> wrote:
> Hi Simon,
>
> On 15/12/12 08:13, Simon Glass wrote:
>> It is useful to be able to access the timer before U-Boot has relocated
>> so that we can fully support bootstage.
>>
>> Move the relevant variables to the data region to support this.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>> arch/x86/cpu/coreboot/coreboot.c | 4 ++--
>> arch/x86/cpu/interrupts.c | 2 +-
>> arch/x86/lib/timer.c | 2 +-
>> 3 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/x86/cpu/coreboot/coreboot.c b/arch/x86/cpu/coreboot/coreboot.c
>> index 9c9431e..22474f5 100644
>> --- a/arch/x86/cpu/coreboot/coreboot.c
>> +++ b/arch/x86/cpu/coreboot/coreboot.c
>> @@ -68,8 +68,8 @@ int board_early_init_r(void)
>> void show_boot_progress(int val)
>> {
>> #if MIN_PORT80_KCLOCKS_DELAY
>> - static uint32_t prev_stamp;
>> - static uint32_t base;
>> + static uint32_t prev_stamp __attribute__((section(".data")));
>> + static uint32_t base __attribute__((section(".data")));
>
> NAK
>
> This may work for coreboot where SDRAM is already initialised and you've
> loaded U-Boot into RAM, but it will not work when U-Boot is in Flash as all
> sections (including .data) are read-only until after relocation.
>
> The stack and Global Data are the only guaranteed read/write locations
> prior to relocation
Ah yes, I was thinking of your comment that all boards would move to
use coreboot. If that is not the case, then I will need to add
something to global data for the timer. And I don't want to do that
while generic board is in progress since it creates conflicts.
Regards,
Simon
>
> Regards,
>
> Graeme
>
More information about the U-Boot
mailing list