summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/2lib/include/2recovery_reasons.h6
-rw-r--r--firmware/include/vboot_nvstorage.h4
-rw-r--r--firmware/lib/vboot_display.c4
3 files changed, 14 insertions, 0 deletions
diff --git a/firmware/2lib/include/2recovery_reasons.h b/firmware/2lib/include/2recovery_reasons.h
index 1c765313..1ced50e1 100644
--- a/firmware/2lib/include/2recovery_reasons.h
+++ b/firmware/2lib/include/2recovery_reasons.h
@@ -190,6 +190,9 @@ enum vb2_nv_recovery {
/* No bootable kernel found on disk */
VB2_RECOVERY_RW_NO_KERNEL = 0x5b,
+ /* BCB related error in RW firmware */
+ VB2_RECOVERY_RW_BCB_ERROR = 0x5c,
+
/* Unspecified/unknown error in rewritable firmware */
VB2_RECOVERY_RW_UNSPECIFIED = 0x7f,
@@ -202,6 +205,9 @@ enum vb2_nv_recovery {
/* Recovery mode test from user-mode */
VB2_RECOVERY_US_TEST = 0xc1,
+ /* Recovery requested by user-mode via BCB */
+ VB2_RECOVERY_BCB_USER_MODE = 0xc2,
+
/* Unspecified/unknown error in user-mode */
VB2_RECOVERY_US_UNSPECIFIED = 0xff,
};
diff --git a/firmware/include/vboot_nvstorage.h b/firmware/include/vboot_nvstorage.h
index a443dd3e..665a5e5d 100644
--- a/firmware/include/vboot_nvstorage.h
+++ b/firmware/include/vboot_nvstorage.h
@@ -250,6 +250,8 @@ typedef enum VbFwResult {
#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
/* Unspecified/unknown error in rewritable firmware */
#define VBNV_RECOVERY_RW_UNSPECIFIED 0x7F
/* DM-verity error */
@@ -258,6 +260,8 @@ typedef enum VbFwResult {
#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
/* Unspecified/unknown error in user-mode */
#define VBNV_RECOVERY_US_UNSPECIFIED 0xFF
diff --git a/firmware/lib/vboot_display.c b/firmware/lib/vboot_display.c
index 311a1c9a..838ffc4f 100644
--- a/firmware/lib/vboot_display.c
+++ b/firmware/lib/vboot_display.c
@@ -484,6 +484,8 @@ const char *RecoveryReasonString(uint8_t code)
return "No bootable storage device in system";
case VBNV_RECOVERY_RW_NO_KERNEL:
return "No bootable kernel found on disk";
+ case VBNV_RECOVERY_RW_BCB_ERROR:
+ return "BCB partition error on disk";
case VBNV_RECOVERY_RW_UNSPECIFIED:
return "Unspecified/unknown error in RW firmware";
case VBNV_RECOVERY_KE_DM_VERITY:
@@ -492,6 +494,8 @@ const char *RecoveryReasonString(uint8_t code)
return "Unspecified/unknown error in kernel";
case VBNV_RECOVERY_US_TEST:
return "Recovery mode test from user-mode";
+ case VBNV_RECOVERY_BCB_USER_MODE:
+ return "User-mode requested recovery via BCB";
case VBNV_RECOVERY_US_UNSPECIFIED:
return "Unspecified/unknown error in user-mode";
}