mosys: adding in missing reason codes for vbnv
Went through vboot_reference/firmware/lib/vboot_display.c
to update the recovery codes in elog.c/h. In particular,
0x2B-0x2F, 0x5C-0x5E, 0xC2-0xC3.
BUG=chromium:632413
BRANCH=None
TEST=mosys eventlog list
Change-Id: I17bc0611bb988a30a154111d8d5eaab3b0507857
Signed-off-by: Shelley Chen <shchen@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/391168
Tested-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
diff --git a/include/lib/elog.h b/include/lib/elog.h
index e26de81..1f3bd89 100644
--- a/include/lib/elog.h
+++ b/include/lib/elog.h
@@ -302,6 +302,16 @@
#define VBNV_RECOVERY_EC_EXPECTED_HASH 0x29
/* EC software sync - expected EC image doesn't match hash */
#define VBNV_RECOVERY_EC_HASH_MISMATCH 0x2A
+/* VB2: Secure data inititalization error */
+#define VBNV_RECOVERY_VB2_SECDATA_INIT 0x2B
+/* VB2: GBB header is bad */
+#define VBNV_RECOVERY_VB2_GBB_HEADER 0x2C
+/* VB2: Unable to clear TPM owner */
+#define VBNV_RECOVERY_VB2_TPM_CLEAR_OWNER 0x2D
+/* VB2: Error determining/updating virtual dev switch */
+#define VBNV_RECOVERY_VB2_DEV_SWITCH 0x2E
+/* VB2: Error determining firmware slot */
+#define VBNV_RECOVERY_VB2_FW_SLOT 0x2F
/* Unspecified/unknown error in read-only firmware */
#define VBNV_RECOVERY_RO_UNSPECIFIED 0x3F
/* User manually requested recovery by pressing a key at developer
@@ -347,6 +357,10 @@
#define VBNV_RECOVERY_RW_NO_DISK 0x5A
/* No bootable kernel found on disk */
#define VBNV_RECOVERY_RW_NO_KERNEL 0x5B
+/* BCB-related error in RW firmware */
+#define VBNV_RECOVERY_RW_BCB_ERROR 0x5C
+/* Fastboot mode requested in firmware */
+#define VBNV_RECOVERY_FW_FASTBOOT 0x5E
/* Unspecified/unknown error in rewritable firmware */
#define VBNV_RECOVERY_RW_UNSPECIFIED 0x7F
/* DM-verity error */
@@ -355,6 +369,10 @@
#define VBNV_RECOVERY_KE_UNSPECIFIED 0xBF
/* Recovery mode test from user-mode */
#define VBNV_RECOVERY_US_TEST 0xC1
+/* Recovery requested by user-mode via BCB */
+#define VBNV_RECOVERY_BCB_USER_MODE 0xC2
+/* Fastboot mode requested by user-mode */
+#define VBNV_RECOVERY_US_FASTBOOT 0xC3
/* Unspecified/unknown error in user-mode */
#define VBNV_RECOVERY_US_UNSPECIFIED 0xFF
diff --git a/lib/eventlog/elog.c b/lib/eventlog/elog.c
index ab70960..e162675 100644
--- a/lib/eventlog/elog.c
+++ b/lib/eventlog/elog.c
@@ -256,6 +256,10 @@
{ EC_EVENT_PANIC, "Panic Reset in previous boot" },
{ 0, NULL },
};
+ /*
+ * Make sure we match reasons listed in
+ * vboot_reference/firmware/lib/vboot_display.c
+ */
static struct valstr cros_recovery_reasons[] = {
{ VBNV_RECOVERY_LEGACY, "Legacy Utility" },
{ VBNV_RECOVERY_RO_MANUAL, "Recovery Button Pressed" },
@@ -268,7 +272,7 @@
{ VBNV_RECOVERY_RO_TEST_LFS,
"Test Error from LoadFirmwareSetup()" },
{ VBNV_RECOVERY_RO_TEST_LF,
- "Test Errofr from LoadFirmware()" },
+ "Test Error from LoadFirmware()" },
{ VBNV_RECOVERY_RO_INVALID_RW_CHECK_NOT_DONE,
"RW firmware check not done" },
{ VBNV_RECOVERY_RO_INVALID_RW_CHECK_DEV_MISMATCH,
@@ -321,6 +325,16 @@
"EC software sync error obtaining expected EC hash from BIOS" },
{ VBNV_RECOVERY_EC_HASH_MISMATCH,
"EC software sync error comparing expected EC hash and image" },
+ { VBNV_RECOVERY_VB2_SECDATA_INIT,
+ "Secure NVRAM (TPM) initialization error" },
+ { VBNV_RECOVERY_VB2_GBB_HEADER,
+ "Error parsing GBB header" },
+ { VBNV_RECOVERY_VB2_TPM_CLEAR_OWNER,
+ "Error trying to clear TPM owner" },
+ { VBNV_RECOVERY_VB2_DEV_SWITCH,
+ "Error reading or updating developer switch" },
+ { VBNV_RECOVERY_VB2_FW_SLOT,
+ "Error selecting RW firmware slot" },
{ VBNV_RECOVERY_RO_UNSPECIFIED,
"Unknown Error in RO Firmware" },
{ VBNV_RECOVERY_RW_DEV_SCREEN,
@@ -361,6 +375,22 @@
"No bootable storage device in system" },
{ VBNV_RECOVERY_RW_NO_KERNEL,
"No bootable kernel found on disk" },
+ { VBNV_RECOVERY_RW_BCB_ERROR,
+ "BCB partition error on disk" },
+ { VBNV_RECOVERY_FW_FASTBOOT,
+ "Fastboot-mode requested in firmware" },
+ { VBNV_RECOVERY_RW_UNSPECIFIED,
+ "Unspecified/unknown error in RW firmware" },
+ { VBNV_RECOVERY_KE_DM_VERITY,
+ "DM-verity error" },
+ { VBNV_RECOVERY_KE_UNSPECIFIED,
+ "Unspecified/unknown error in kernel" },
+ { VBNV_RECOVERY_US_TEST,
+ "Recovery mode test from user-mode" },
+ { VBNV_RECOVERY_BCB_USER_MODE,
+ "User-mode requested recovery via BCB" },
+ { VBNV_RECOVERY_US_FASTBOOT,
+ "User-mode requested fastboot mode" },
{ VBNV_RECOVERY_RW_UNSPECIFIED,
"Unknown Error in RW Firmware" },
{ VBNV_RECOVERY_KE_DM_VERITY, "DM-Verity Error" },