vboot: Implement VbExGetTimer using monotonic timers

On x86 VbExGetTimer() uses rdtsc. However, on all
other platforms, let's just use coreboot's monotonic timers.

Change-Id: I0cd359f298be33776740305b111624147e2c850d
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: https://chromium-review.googlesource.com/169620
(cherry picked from commit e910bb17522d5de42c0fc3cc945278e733fa2553)
Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com>
Reviewed-on: http://review.coreboot.org/6534
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Stefan Reinauer 2013-09-16 14:23:16 -07:00 committed by Patrick Georgi
parent 7cb01e0bcf
commit 141512161b
1 changed files with 10 additions and 0 deletions

View File

@ -17,7 +17,11 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <console/vtxprintf.h> #include <console/vtxprintf.h>
#if CONFIG_ARCH_X86
#include <cpu/x86/tsc.h> #include <cpu/x86/tsc.h>
#else
#include <timer.h>
#endif
#include <rmodule.h> #include <rmodule.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@ -123,7 +127,13 @@ void VbExDebug(const char *format, ...)
uint64_t VbExGetTimer(void) uint64_t VbExGetTimer(void)
{ {
#if CONFIG_ARCH_X86
return rdtscll(); return rdtscll();
#else
struct mono_time mt;
timer_monotonic_get(&mt);
return mt.microseconds;
#endif
} }
VbError_t VbExNvStorageRead(uint8_t *buf) VbError_t VbExNvStorageRead(uint8_t *buf)