Browse Source

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>
tags/2020-06-01
Simon Glass 4 years ago
committed by Tom Rini
parent
commit
9fb34b01f7
1 changed files with 17 additions and 0 deletions
  1. +17
    -0
      lib/time.c

+ 17
- 0
lib/time.c View File

@@ -36,6 +36,23 @@ unsigned long notrace timer_read_counter(void)
return readl(CONFIG_SYS_TIMER_COUNTER);
#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
extern unsigned long __weak timer_read_counter(void);
#endif