diff options
author | Raul E Rangel <rrangel@chromium.org> | 2021-06-10 15:46:32 -0600 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2021-07-05 10:50:06 +0000 |
commit | 4693f3dfe907d13359c48751db2014b945ea4d05 (patch) | |
tree | 06337378c94c0150c816064f15ba4ec62f231061 /src | |
parent | 2efcafa7b05a84d72615108bc1a771fdba3cfe1c (diff) |
timestamp,vc/google/chromeos/cr50: Add timestamp for enable update
cr50_enable_update takes a non-trivial amount of time.
TEST=Boot guybrush and dump timestamps
553:started TPM enable update 3,615,156 (444)
554:finished TPM enable update 3,632,810 (17,654)
Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: I522d0638a4a6ae9624965e49b47bca8743c3206c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55402
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/commonlib/include/commonlib/timestamp_serialized.h | 4 | ||||
-rw-r--r-- | src/vendorcode/google/chromeos/cr50_enable_update.c | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/commonlib/include/commonlib/timestamp_serialized.h b/src/commonlib/include/commonlib/timestamp_serialized.h index 09985b784e..300aa2a37e 100644 --- a/src/commonlib/include/commonlib/timestamp_serialized.h +++ b/src/commonlib/include/commonlib/timestamp_serialized.h @@ -77,6 +77,8 @@ enum timestamp_id { TS_START_COPYVPD = 550, TS_END_COPYVPD_RO = 551, TS_END_COPYVPD_RW = 552, + TS_START_TPM_ENABLE_UPDATE = 553, + TS_END_TPM_ENABLE_UPDATE = 554, /* 900-940 reserved for vendorcode extensions (900-940: AMD) */ TS_AGESA_INIT_RESET_START = 900, @@ -204,6 +206,8 @@ static const struct timestamp_id_to_name { { TS_END_TPMPCR, "finished TPM PCR extend" }, { TS_START_TPMLOCK, "starting locking TPM" }, { TS_END_TPMLOCK, "finished locking TPM" }, + { TS_START_TPM_ENABLE_UPDATE, "started TPM enable update" }, + { TS_END_TPM_ENABLE_UPDATE, "finished TPM enable update" }, { TS_START_COPYVPD, "starting to load Chrome OS VPD" }, { TS_END_COPYVPD_RO, "finished loading Chrome OS VPD (RO)" }, diff --git a/src/vendorcode/google/chromeos/cr50_enable_update.c b/src/vendorcode/google/chromeos/cr50_enable_update.c index e30fe2a44c..a8243e17e0 100644 --- a/src/vendorcode/google/chromeos/cr50_enable_update.c +++ b/src/vendorcode/google/chromeos/cr50_enable_update.c @@ -9,6 +9,7 @@ #include <vb2_api.h> #include <security/vboot/vboot_common.h> #include <vendorcode/google/chromeos/chromeos.h> +#include <timestamp.h> #define CR50_RESET_DELAY_MS 1000 @@ -89,6 +90,8 @@ static void enable_update(void *unused) return; } + timestamp_add_now(TS_START_TPM_ENABLE_UPDATE); + /* Reboot in 1000 ms if necessary. */ ret = tlcl_cr50_enable_update(CR50_RESET_DELAY_MS, &num_restored_headers); @@ -115,8 +118,10 @@ static void enable_update(void *unused) * If the Cr50 doesn't requires a reset, continue booting. */ cr50_reset_reqd = cr50_is_reset_needed(); - if (!cr50_reset_reqd) + if (!cr50_reset_reqd) { + timestamp_add_now(TS_END_TPM_ENABLE_UPDATE); return; + } printk(BIOS_INFO, "Waiting for CR50 reset to enable TPM.\n"); elog_add_event(ELOG_TYPE_CR50_NEED_RESET); |