timestamps: Switch from tsc_t to uint64_t
Cherry-pick from chromium and adjusted for added boards and changed directory layout for arch/arm. Timestamp implementation for ARMv7 Abstract the use of rdtsc() and make the timestamps uint64_t in the generic code. The ARM implementation uses the monotonic timer. Original-Signed-off-by: Stefan Reinauer <reinauer@google.com> BRANCH=none BUG=chrome-os-partner:18637 TEST=See cbmem print timestamps Original-Change-Id: Id377ba570094c44e6895ae75f8d6578c8865ea62 Original-Reviewed-on: https://gerrit.chromium.org/gerrit/63793 (cherry-picked from commit cc1a75e059020a39146e25b9198b0d58aa03924c) Change-Id: Ic51fb78ddd05ba81906d9c3b35043fa14fbbed75 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/8020 Tested-by: build bot (Jenkins) Reviewed-by: Marc Jones <marc.jones@se-eng.com>
This commit is contained in:
committed by
Kyösti Mälkki
parent
83405a1241
commit
3a6550d989
@@ -53,6 +53,11 @@ static inline unsigned long long rdtscll(void)
|
||||
);
|
||||
return val;
|
||||
}
|
||||
|
||||
static inline uint64_t tsc_to_uint64(tsc_t tstamp)
|
||||
{
|
||||
return (((uint64_t)tstamp.hi) << 32) + tstamp.lo;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_TSC_CONSTANT_RATE
|
||||
|
@@ -20,6 +20,8 @@
|
||||
#ifndef __TIMESTAMP_H__
|
||||
#define __TIMESTAMP_H__
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
struct timestamp_entry {
|
||||
uint32_t entry_id;
|
||||
uint64_t entry_stamp;
|
||||
@@ -59,12 +61,10 @@ enum timestamp_id {
|
||||
};
|
||||
|
||||
#if CONFIG_COLLECT_TIMESTAMPS && (CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__))
|
||||
#include <cpu/x86/tsc.h>
|
||||
void timestamp_init(tsc_t base);
|
||||
void timestamp_add(enum timestamp_id id, tsc_t ts_time);
|
||||
void timestamp_init(uint64_t base);
|
||||
void timestamp_add(enum timestamp_id id, uint64_t ts_time);
|
||||
void timestamp_add_now(enum timestamp_id id);
|
||||
void timestamp_reinit(void);
|
||||
tsc_t get_initial_timestamp(void);
|
||||
#else
|
||||
#define timestamp_init(base)
|
||||
#define timestamp_add(id, time)
|
||||
@@ -72,4 +72,8 @@ tsc_t get_initial_timestamp(void);
|
||||
#define timestamp_reinit()
|
||||
#endif
|
||||
|
||||
/* Implemented by the architecture code */
|
||||
uint64_t timestamp_get(void);
|
||||
uint64_t get_initial_timestamp(void);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user