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 <s...@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

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

Reply via email to