Paul Kocialkowski (contact@paulk.fr) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17929
-gerrit
commit a7b719c5eb657ec541575c9ab05888d888205ff1 Author: Paul Kocialkowski contact@paulk.fr Date: Mon Dec 19 19:22:39 2016 +0100
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.
Change-Id: I5ce02bfa15a91ad34641b8e24813a5b7ca790ec3 Signed-off-by: Paul Kocialkowski contact@paulk.fr --- 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 4c06618..ac26f40 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;