[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 22:13:07 CET 2012
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")));
/*
* Scale the time counter reading to avoid using 64 bit arithmetics.
diff --git a/arch/x86/cpu/interrupts.c b/arch/x86/cpu/interrupts.c
index dd30a05..60ae950 100644
--- a/arch/x86/cpu/interrupts.c
+++ b/arch/x86/cpu/interrupts.c
@@ -626,7 +626,7 @@ asm(".globl irq_common_entry\n" \
*/
u64 get_ticks(void)
{
- static u64 tick_base;
+ static u64 tick_base __attribute__((section(".data")));
u64 now_tick = rdtsc();
if (!tick_base)
diff --git a/arch/x86/lib/timer.c b/arch/x86/lib/timer.c
index a13424b..6303ca5 100644
--- a/arch/x86/lib/timer.c
+++ b/arch/x86/lib/timer.c
@@ -37,7 +37,7 @@ struct timer_isr_function {
static struct timer_isr_function *first_timer_isr;
static unsigned long system_ticks;
-static uint64_t base_value;
+static uint64_t base_value __attribute__((section(".data")));
/*
* register_timer_isr() allows multiple architecture and board specific
--
1.7.7.3
More information about the U-Boot
mailing list