bootstage: Provide a default timer function

If CONFIG_SYS_TIMER_COUNTER is used we can provide a default microsecond
timer implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2017-05-22 05:05:22 -06:00 committed by Tom Rini
parent 9cb5eaf2cf
commit 9fb34b01f7

View file

@ -36,6 +36,23 @@ unsigned long notrace timer_read_counter(void)
return readl(CONFIG_SYS_TIMER_COUNTER); return readl(CONFIG_SYS_TIMER_COUNTER);
#endif #endif
} }
ulong timer_get_boot_us(void)
{
ulong count = timer_read_counter();
#if CONFIG_SYS_TIMER_RATE == 1000000
return count;
#elif CONFIG_SYS_TIMER_RATE > 1000000
return lldiv(count, CONFIG_SYS_TIMER_RATE / 1000000);
#elif defined(CONFIG_SYS_TIMER_RATE)
return (unsigned long long)count * 1000000 / CONFIG_SYS_TIMER_RATE;
#else
/* Assume the counter is in microseconds */
return count;
#endif
}
#else #else
extern unsigned long __weak timer_read_counter(void); extern unsigned long __weak timer_read_counter(void);
#endif #endif