diff options
author | Simon Glass <sjg@chromium.org> | 2011-12-10 11:08:03 +0000 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2012-03-18 21:33:53 +0100 |
commit | 5ff55390ed80da2570fbeab51bdd2d2a43d4901a (patch) | |
tree | 550c76fe55ff7b4d73d24e9ecb61ba2cfe034bbd /lib | |
parent | aacc8c16ee3b4dd2ef6c6b662e71273c31097548 (diff) | |
download | u-boot-5ff55390ed80da2570fbeab51bdd2d2a43d4901a.zip u-boot-5ff55390ed80da2570fbeab51bdd2d2a43d4901a.tar.gz u-boot-5ff55390ed80da2570fbeab51bdd2d2a43d4901a.tar.bz2 |
bootstage: Define an optional microsecond timer
Define timer_get_boot_us() which returns the number of microseconds
since boot. If undefined then we use get_timer() * 1000.
We can fit this in a 32-bit register which keeps everyone happy on
the efficiency side. It will wrap around after about an hour. If we
are still looking at it after an hour then we had better not be
timing the boot.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/time.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -47,3 +47,20 @@ void mdelay(unsigned long msec) while (msec--) udelay(1000); } + +ulong __timer_get_boot_us(void) +{ + static ulong base_time; + + /* + * We can't implement this properly. Return 0 on the first call and + * larger values after that. + */ + if (base_time) + return get_timer(base_time) * 1000; + base_time = get_timer(0); + return 0; +} + +ulong timer_get_boot_us(void) + __attribute__((weak, alias("__timer_get_boot_us"))); |