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" },