summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/include/vboot_nvstorage.h10
-rw-r--r--firmware/lib/vboot_display.c15
2 files changed, 24 insertions, 1 deletions
diff --git a/firmware/include/vboot_nvstorage.h b/firmware/include/vboot_nvstorage.h
index f71a55ab..4401777e 100644
--- a/firmware/include/vboot_nvstorage.h
+++ b/firmware/include/vboot_nvstorage.h
@@ -183,6 +183,16 @@ typedef enum VbFwResult {
#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
/*
diff --git a/firmware/lib/vboot_display.c b/firmware/lib/vboot_display.c
index c66af8df..26fa8bd4 100644
--- a/firmware/lib/vboot_display.c
+++ b/firmware/lib/vboot_display.c
@@ -430,6 +430,16 @@ const char *RecoveryReasonString(uint8_t code)
return "EC software sync unable to jump to EC-RW";
case VBNV_RECOVERY_EC_PROTECT:
return "EC software sync protection error";
+ case VBNV_RECOVERY_VB2_SECDATA_INIT:
+ return "Secure NVRAM (TPM) initialization error";
+ case VBNV_RECOVERY_VB2_GBB_HEADER:
+ return "Error parsing GBB header";
+ case VBNV_RECOVERY_VB2_TPM_CLEAR_OWNER:
+ return "Error trying to clear TPM owner";
+ case VBNV_RECOVERY_VB2_DEV_SWITCH:
+ return "Error reading or updating developer switch";
+ case VBNV_RECOVERY_VB2_FW_SLOT:
+ return "Error selecting RW firmware slot";
case VBNV_RECOVERY_RO_UNSPECIFIED:
return "Unspecified/unknown error in RO firmware";
case VBNV_RECOVERY_RW_DEV_SCREEN:
@@ -511,11 +521,14 @@ VbError_t VbDisplayDebugInfo(VbCommonParams *cparams, VbNvContext *vncptr)
used += StrnAppend(buf + used, "HWID: ", DEBUG_INFO_SIZE - used);
used += StrnAppend(buf + used, hwid, DEBUG_INFO_SIZE - used);
- /* Add recovery reason */
+ /* Add recovery reason and subcode */
+ VbNvGet(vncptr, VBNV_RECOVERY_SUBCODE, &i);
used += StrnAppend(buf + used,
"\nrecovery_reason: 0x", DEBUG_INFO_SIZE - used);
used += Uint64ToString(buf + used, DEBUG_INFO_SIZE - used,
shared->recovery_reason, 16, 2);
+ used += StrnAppend(buf + used, " / 0x", DEBUG_INFO_SIZE - used);
+ used += Uint64ToString(buf + used, DEBUG_INFO_SIZE - used, i, 16, 2);
used += StrnAppend(buf + used, " ", DEBUG_INFO_SIZE - used);
used += StrnAppend(buf + used,
RecoveryReasonString(shared->recovery_reason),