From 11ddfce5d866e09eaacdaaf5a058c6309825f244 Mon Sep 17 00:00:00 2001 From: Paul Kocialkowski Date: Mon, 19 Dec 2016 19:22:39 +0100 Subject: [PATCH] UPSTREAM: libpayload: Get current tick from high register in generic timer This fixes the generic timer driver to get the current tick from the high register, so that comparison with the high count value (obtained previously from the same register) has a chance to succeed. BUG=none BRANCH=none TEST=none Change-Id: I5ce02bfa15a91ad34641b8e24813a5b7ca790ec3 Signed-off-by: Paul Kocialkowski Reviewed-on: https://review.coreboot.org/17929 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber Reviewed-by: Paul Menzel Reviewed-on: https://chromium-review.googlesource.com/427823 Commit-Ready: Patrick Georgi Tested-by: Patrick Georgi Reviewed-by: Stefan Reinauer --- payloads/libpayload/drivers/timer/generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/payloads/libpayload/drivers/timer/generic.c b/payloads/libpayload/drivers/timer/generic.c index 4c066182fc..ac26f407b0 100644 --- a/payloads/libpayload/drivers/timer/generic.c +++ b/payloads/libpayload/drivers/timer/generic.c @@ -53,7 +53,7 @@ uint64_t timer_raw_value(void) do { count_h = readl(phys_to_virt(CONFIG_LP_TIMER_GENERIC_HIGH_REG)); count_l = readl(phys_to_virt(CONFIG_LP_TIMER_GENERIC_REG)); - cur_tick = readl(phys_to_virt(CONFIG_LP_TIMER_GENERIC_REG)); + cur_tick = readl(phys_to_virt(CONFIG_LP_TIMER_GENERIC_HIGH_REG)); } while (cur_tick != count_h); return (cur_tick << 32) + count_l;