libpayload: Generalize and redistribute timekeeping code
commit5c0b7abe786d7b4370ed1dd7ef323a3091d9620c
authorGabe Black <gabeblack@google.com>
Sat, 23 Feb 2013 00:38:53 +0000 (22 16:38 -0800)
committerRonald G. Minnich <rminnich@gmail.com>
Thu, 14 Mar 2013 03:53:33 +0000 (14 04:53 +0100)
treecbd054ae9d0b25a024bead99d1c61bf287563b0e
parent6a0b3611c5b057907aabe2a1c05302440da9bc19
libpayload: Generalize and redistribute timekeeping code

The timekeeping code in libpayload was dependent on rdtsc, and when it was
split up by arch, that code was duplicated even though it was mostly the same.
This change factors out actually reading the count from the timer and the
speed of the timer and puts the definitions of ndelay, udelay, mdelay and
delay into generic code. Then, in x86, the timer_hz and timer_get_raw_value
functions which used to be in depthcharge were moved over to libpayload's
arch/x86/timer.c. In ARM where there isn't a single, canonical timer, those
functions are omitted with the intention that they'll be implemented by a
specific timer driver chosen elsewhere.

Change-Id: I9c919bed712ace941f417c1d58679d667b2d8269
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: http://review.coreboot.org/2717
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
payloads/libpayload/arch/armv7/timer.c
payloads/libpayload/arch/powerpc/timer.c
payloads/libpayload/arch/x86/timer.c
payloads/libpayload/include/libpayload.h
payloads/libpayload/libc/time.c