summaryrefslogtreecommitdiffstats
path: root/src/include/delay.h
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2014-12-08 13:39:14 -0800
committerPatrick Georgi <pgeorgi@google.com>2015-04-14 09:03:28 +0200
commit44cf870cb08b48dacdd6652baa15dba93fbc6216 (patch)
tree36a23e947289e3f7644dc4a65700bae177a59835 /src/include/delay.h
parentefcee767deed9d10628764eb9143724dd206d5fa (diff)
downloadcoreboot-44cf870cb08b48dacdd6652baa15dba93fbc6216.tar.gz
coreboot-44cf870cb08b48dacdd6652baa15dba93fbc6216.tar.bz2
coreboot-44cf870cb08b48dacdd6652baa15dba93fbc6216.zip
timer: Reestablish init_timer(), consolidate timer initialization calls
We have known for a while that the old x86 model of calling init_timer() in ramstage doesn't make sense on other archs (and is questionable in general), and finally removed it with CL:219719. However, now timer initialization is completely buried in the platform code, and it's hard to ensure it is done in time to set up timestamps. For three out of four non-x86 SoC vendors we have brought up for now, the timers need some kind of SoC-specific initialization. This patch reintroduces init_timer() as a weak function that can be overridden by platform code. The call in ramstage is restricted to x86 (and should probably eventually be removed from there as well), and other archs should call them at the earliest reasonable point in their bootblock. (Only changing arm for now since arm64 and mips bootblocks are still in very early state and should sync up to features in arm once their requirements are better understood.) This allows us to move timestamp_init() into arch code, so that we can rely on timestamps being available at a well-defined point and initialize our base value as early as possible. (Platforms who know that their timers start at zero can still safely call timestamp_init(0) again from platform code.) BRANCH=None BUG=None TEST=Booted Pinky, Blaze and Storm, compiled Daisy and Pit. Change-Id: I1b064ba3831c0c5b7965b1d88a6f4a590789c891 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: ffaebcd3785c4ce998ac1536e9fdd46ce3f52bfa Original-Change-Id: Iece1614b7442d4fa9ca981010e1c8497bdea308d Original-Signed-off-by: Julius Werner <jwerner@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/234062 Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/9606 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/include/delay.h')
-rw-r--r--src/include/delay.h4
1 files changed, 0 insertions, 4 deletions
diff --git a/src/include/delay.h b/src/include/delay.h
index ab1f4f982971..b3d8ed95da51 100644
--- a/src/include/delay.h
+++ b/src/include/delay.h
@@ -1,11 +1,7 @@
#ifndef DELAY_H
#define DELAY_H
-#if IS_ENABLED(CONFIG_GENERIC_UDELAY)
-static inline void init_timer(void) {}
-#else
void init_timer(void);
-#endif
void udelay(unsigned usecs);
void mdelay(unsigned msecs);