libpayload: pistachio: fix timer implementation
timer_raw_value must return the number of CPU ticks, and not the time obtained by dividing the ticks by the CPU frequency. The CPU counter is increased at every 2 CPU clocks and therfore the number of ticks will be the counter value multiplied by 2. BUG=chrome-os-partner:31438 TEST=tested on Pistachio FPGA; it works properly. BRANCH=none Change-Id: Iae62cb328e882f84822250bdf72146321ca9bbe0 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: 7ab25ce7dcaffb453ee774d870963a56444d46af Original-Change-Id: I74408950900463a2c054d5aebd3edb005a325adb Original-Signed-off-by: Ionela Voinescu <ionela.voinescu@imgtec.com> Original-Reviewed-on: https://chromium-review.googlesource.com/242393 Original-Reviewed-by: David Hendricks <dhendrix@chromium.org> Reviewed-on: http://review.coreboot.org/8744 Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
66fc77d3af
commit
b29a67d8c8
|
@ -20,11 +20,6 @@
|
||||||
#include <libpayload.h>
|
#include <libpayload.h>
|
||||||
#include <arch/cpu.h>
|
#include <arch/cpu.h>
|
||||||
|
|
||||||
static int get_timer_speed_khz(void)
|
|
||||||
{
|
|
||||||
return get_cpu_speed()/2;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t timer_hz(void)
|
uint64_t timer_hz(void)
|
||||||
{
|
{
|
||||||
return lib_sysinfo.cpu_khz * 1000;
|
return lib_sysinfo.cpu_khz * 1000;
|
||||||
|
@ -32,5 +27,5 @@ uint64_t timer_hz(void)
|
||||||
|
|
||||||
uint64_t timer_raw_value(void)
|
uint64_t timer_raw_value(void)
|
||||||
{
|
{
|
||||||
return read_c0_count()/(get_timer_speed_khz()/1000);
|
return read_c0_count() * 2;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue