aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Kconfig7
-rw-r--r--src/lib/timestamp.c16
2 files changed, 23 insertions, 0 deletions
diff --git a/src/Kconfig b/src/Kconfig
index 692a5b7883..99a704dbd7 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -185,6 +185,13 @@ config COLLECT_TIMESTAMPS
Make coreboot create a table of timer-ID/timer-value pairs to
allow measuring time spent at different phases of the boot process.
+config TIMESTAMPS_ON_CONSOLE
+ bool "Print the timestamp values on the console"
+ default n
+ depends on COLLECT_TIMESTAMPS
+ help
+ Print the timestamps to the debug console if enabled at level spew.
+
config USE_BLOBS
bool "Allow use of binary-only repository"
help
diff --git a/src/lib/timestamp.c b/src/lib/timestamp.c
index 149b8b8bbb..2ab725372b 100644
--- a/src/lib/timestamp.c
+++ b/src/lib/timestamp.c
@@ -154,6 +154,18 @@ static struct timestamp_table *timestamp_table_get(void)
return ts_table;
}
+static const char *timestamp_name(enum timestamp_id id)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(timestamp_ids); i++) {
+ if (timestamp_ids[i].id == id)
+ return timestamp_ids[i].name;
+ }
+
+ return "Unknown timestamp ID";
+}
+
static void timestamp_add_table_entry(struct timestamp_table *ts_table,
enum timestamp_id id, uint64_t ts_time)
{
@@ -166,6 +178,10 @@ static void timestamp_add_table_entry(struct timestamp_table *ts_table,
tse->entry_id = id;
tse->entry_stamp = ts_time - ts_table->base_time;
+ if (IS_ENABLED(CONFIG_TIMESTAMPS_ON_CONSOLE))
+ printk(BIOS_SPEW, "Timestamp - %s: %" PRIu64 "\n",
+ timestamp_name(id), ts_time);
+
if (ts_table->num_entries == ts_table->max_entries)
printk(BIOS_ERR, "ERROR: Timestamp table full\n");
}