timestamps: Remove TIMESTAMP_CACHE_IN_BSS
This was implemented for LATE_CBMEM_INIT support which has already been deprecated. Change-Id: I39225ba675bc3389e051e15b400a905431969715 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/35375 Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
b6b13c9f29
commit
8b93689a35
|
@ -31,7 +31,10 @@ void main(void)
|
||||||
|
|
||||||
console_init();
|
console_init();
|
||||||
|
|
||||||
/* Recover cbmem so infrastruture using it is functional. */
|
/*
|
||||||
|
* CBMEM needs to be recovered because timestamps rely on
|
||||||
|
* the cbmem infrastructure being around. Explicitly recover it.
|
||||||
|
*/
|
||||||
cbmem_initialize();
|
cbmem_initialize();
|
||||||
|
|
||||||
timestamp_add_now(TS_START_POSTCAR);
|
timestamp_add_now(TS_START_POSTCAR);
|
||||||
|
|
|
@ -28,8 +28,9 @@
|
||||||
*/
|
*/
|
||||||
void timestamp_init(uint64_t base);
|
void timestamp_init(uint64_t base);
|
||||||
/*
|
/*
|
||||||
* Add a new timestamp. Depending on cbmem is available or not, this timestamp
|
* Add a new timestamp. For ENV_ROMSTAGE_OR_BEFORE, this timestamp will be stored
|
||||||
* will be stored to cbmem / timestamp cache.
|
* inside REGION(timestamp) before cbmem comes online. For later stages, timestamps
|
||||||
|
* added before cbmem_[recovery|initialize] calls will be lost.
|
||||||
*/
|
*/
|
||||||
void timestamp_add(enum timestamp_id id, uint64_t ts_time);
|
void timestamp_add(enum timestamp_id id, uint64_t ts_time);
|
||||||
/* Calls timestamp_add with current timestamp. */
|
/* Calls timestamp_add with current timestamp. */
|
||||||
|
|
|
@ -27,34 +27,9 @@
|
||||||
|
|
||||||
#define MAX_TIMESTAMPS 192
|
#define MAX_TIMESTAMPS 192
|
||||||
|
|
||||||
/* When changing this number, adjust TIMESTAMP() size ASSERT() in memlayout.h */
|
|
||||||
#define MAX_BSS_TIMESTAMP_CACHE 16
|
|
||||||
|
|
||||||
struct __packed timestamp_cache {
|
|
||||||
struct timestamp_table table;
|
|
||||||
/* The struct timestamp_table has a 0 length array as its last field.
|
|
||||||
* The following 'entries' array serves as the storage space for the
|
|
||||||
* cache when allocated in the BSS. */
|
|
||||||
struct timestamp_entry entries[MAX_BSS_TIMESTAMP_CACHE];
|
|
||||||
};
|
|
||||||
|
|
||||||
DECLARE_OPTIONAL_REGION(timestamp);
|
DECLARE_OPTIONAL_REGION(timestamp);
|
||||||
|
|
||||||
#if ENV_ROMSTAGE_OR_BEFORE
|
/* This points to the active timestamp_table and can change within a stage
|
||||||
#define USE_TIMESTAMP_REGION (REGION_SIZE(timestamp) > 0)
|
|
||||||
#else
|
|
||||||
#define USE_TIMESTAMP_REGION 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Currently we never store timestamp cache in .bss. */
|
|
||||||
#define TIMESTAMP_CACHE_IN_BSS 0
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Storage of cache entries prior to cbmem coming online.
|
|
||||||
*/
|
|
||||||
static struct timestamp_cache timestamp_cache;
|
|
||||||
|
|
||||||
/* This points to the active timestamp_table and can change within a stage.
|
|
||||||
as CBMEM comes available. */
|
as CBMEM comes available. */
|
||||||
static struct timestamp_table *glob_ts_table CAR_GLOBAL;
|
static struct timestamp_table *glob_ts_table CAR_GLOBAL;
|
||||||
|
|
||||||
|
@ -62,24 +37,22 @@ static void timestamp_cache_init(struct timestamp_table *ts_cache,
|
||||||
uint64_t base)
|
uint64_t base)
|
||||||
{
|
{
|
||||||
ts_cache->num_entries = 0;
|
ts_cache->num_entries = 0;
|
||||||
ts_cache->max_entries = MAX_BSS_TIMESTAMP_CACHE;
|
|
||||||
ts_cache->base_time = base;
|
ts_cache->base_time = base;
|
||||||
|
ts_cache->max_entries = (REGION_SIZE(timestamp) -
|
||||||
if (USE_TIMESTAMP_REGION)
|
offsetof(struct timestamp_table, entries))
|
||||||
ts_cache->max_entries = (REGION_SIZE(timestamp) -
|
/ sizeof(struct timestamp_entry);
|
||||||
offsetof(struct timestamp_table, entries))
|
|
||||||
/ sizeof(struct timestamp_entry);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct timestamp_table *timestamp_cache_get(void)
|
static struct timestamp_table *timestamp_cache_get(void)
|
||||||
{
|
{
|
||||||
struct timestamp_table *ts_cache = NULL;
|
struct timestamp_table *ts_cache = NULL;
|
||||||
|
|
||||||
if (TIMESTAMP_CACHE_IN_BSS) {
|
if (!ENV_ROMSTAGE_OR_BEFORE)
|
||||||
ts_cache = ×tamp_cache.table;
|
return NULL;
|
||||||
} else if (USE_TIMESTAMP_REGION) {
|
|
||||||
if (REGION_SIZE(timestamp) < sizeof(*ts_cache))
|
if (REGION_SIZE(timestamp) < sizeof(*ts_cache)) {
|
||||||
BUG();
|
BUG();
|
||||||
|
} else {
|
||||||
ts_cache = (void *)_timestamp;
|
ts_cache = (void *)_timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue