diff options
Diffstat (limited to 'src/soc/intel/quark/tsc_freq.c')
-rw-r--r-- | src/soc/intel/quark/tsc_freq.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/soc/intel/quark/tsc_freq.c b/src/soc/intel/quark/tsc_freq.c index eb8c46ecf2..e6d0369eff 100644 --- a/src/soc/intel/quark/tsc_freq.c +++ b/src/soc/intel/quark/tsc_freq.c @@ -17,20 +17,18 @@ #include <stdint.h> #include <cpu/x86/msr.h> #include <cpu/x86/tsc.h> +#include <timer.h> -static unsigned long bus_freq_khz(void) +unsigned long tsc_freq_mhz(void) { /* CPU freq = 400 MHz */ - return 400 * 1000; + return 400; } -unsigned long tsc_freq_mhz(void) +void timer_monotonic_get(struct mono_time *mt) { - /* assume ratio=1 */ - unsigned bclk_khz = bus_freq_khz(); - - if (!bclk_khz) - return 0; + uint64_t tsc_value; - return (bclk_khz * 1) / 1000; + tsc_value = rdtscll(); + mt->microseconds = tsc_value / tsc_freq_mhz(); } |