armv7: timer: init timer with bootstage
authorPatrick Delaunay <patrick.delaunay@st.com>
Thu, 18 Apr 2019 15:32:46 +0000 (17:32 +0200)
committerPatrice Chotard <patrice.chotard@st.com>
Thu, 23 May 2019 09:36:47 +0000 (11:36 +0200)
In initf_bootstage() we call bootstage_mark_name() which ends up calling
timer_get_us() before timer_init(); that cause crash for stm32mp1.

This patch solve the issue without changing the initialization sequence.
See also commit 97d20f69f53e ("Enable CONFIG_TIMER_EARLY with bootstage")
for other solution when DM is activated for TIMER.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
arch/arm/cpu/armv7/arch_timer.c

index 3db31c020952389b3fe9952bcba45802746e1453..5de63053d5934ad8c3fac1dcf27273c014e4a4eb 100644 (file)
@@ -49,6 +49,9 @@ unsigned long long get_ticks(void)
 
 ulong timer_get_boot_us(void)
 {
+       if (!gd->arch.timer_rate_hz)
+               timer_init();
+
        return lldiv(get_ticks(), gd->arch.timer_rate_hz / 1000000);
 }