x86: Support adding coreboot timestanps to bootstage
Coreboot provides a lot of useful timing information. Provide a facility to add this to bootstage on start-up. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
04dbf77d62
commit
5397d8058c
@ -61,3 +61,41 @@ void timestamp_add_now(enum timestamp_id id)
|
||||
{
|
||||
timestamp_add(id, rdtsc());
|
||||
}
|
||||
|
||||
int timestamp_add_to_bootstage(void)
|
||||
{
|
||||
uint i;
|
||||
|
||||
if (!ts_table)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < ts_table->num_entries; i++) {
|
||||
struct timestamp_entry *tse = &ts_table->entries[i];
|
||||
const char *name = NULL;
|
||||
|
||||
switch (tse->entry_id) {
|
||||
case TS_START_ROMSTAGE:
|
||||
name = "start-romstage";
|
||||
break;
|
||||
case TS_BEFORE_INITRAM:
|
||||
name = "before-initram";
|
||||
break;
|
||||
case TS_DEVICE_INITIALIZE:
|
||||
name = "device-initialize";
|
||||
break;
|
||||
case TS_DEVICE_DONE:
|
||||
name = "device-done";
|
||||
break;
|
||||
case TS_SELFBOOT_JUMP:
|
||||
name = "selfboot-jump";
|
||||
break;
|
||||
}
|
||||
if (name) {
|
||||
bootstage_add_record(0, name, BOOTSTAGEF_ALLOC,
|
||||
tse->entry_stamp /
|
||||
get_tbclk_mhz());
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -49,4 +49,11 @@ void timestamp_init(void);
|
||||
void timestamp_add(enum timestamp_id id, uint64_t ts_time);
|
||||
void timestamp_add_now(enum timestamp_id id);
|
||||
|
||||
/**
|
||||
* timestamp_add_to_bootstage - Add important coreboot timestamps to bootstage
|
||||
*
|
||||
* @return 0 if ok, -1 if no timestamps were found
|
||||
*/
|
||||
int timestamp_add_to_bootstage(void);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user