summaryrefslogtreecommitdiff
path: root/firmware/2lib/2ui_screens.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/2lib/2ui_screens.c')
-rw-r--r--firmware/2lib/2ui_screens.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/firmware/2lib/2ui_screens.c b/firmware/2lib/2ui_screens.c
index 042d6d4c..c43abb8f 100644
--- a/firmware/2lib/2ui_screens.c
+++ b/firmware/2lib/2ui_screens.c
@@ -249,7 +249,8 @@ static const struct vb2_screen_info recovery_invalid_screen = {
vb2_error_t recovery_to_dev_init(struct vb2_ui_context *ui)
{
if (vb2_get_sd(ui->ctx)->flags & VB2_SD_FLAG_DEV_MODE_ENABLED) {
- VB2_DEBUG("Dev mode already enabled?\n");
+ /* We're in dev mode, so let user know they can't transition */
+ ui->error_code = VB2_UI_ERROR_DEV_MODE_ALREADY_ENABLED;
return vb2_ui_change_root(ui);
}
@@ -489,6 +490,7 @@ vb2_error_t vb2_ui_developer_mode_boot_external_action(
!vb2_dev_boot_allowed(ui->ctx) ||
!vb2_dev_boot_external_allowed(ui->ctx)) {
VB2_DEBUG("ERROR: Dev mode external boot not allowed\n");
+ ui->error_code = VB2_UI_ERROR_DEV_EXTERNAL_NOT_ALLOWED;
return VB2_REQUEST_UI_CONTINUE;
}
@@ -496,13 +498,17 @@ vb2_error_t vb2_ui_developer_mode_boot_external_action(
if (rv == VB2_SUCCESS) {
return VB2_SUCCESS;
} else if (rv == VB2_ERROR_LK_NO_DISK_FOUND) {
- if (ui->state.screen->id != VB2_SCREEN_DEVELOPER_BOOT_EXTERNAL)
+ if (ui->state.screen->id != VB2_SCREEN_DEVELOPER_BOOT_EXTERNAL) {
VB2_DEBUG("No external disk found\n");
+ ui->error_code = VB2_UI_ERROR_DEV_EXTERNAL_BOOT_FAILED;
+ }
return vb2_ui_change_screen(
ui, VB2_SCREEN_DEVELOPER_BOOT_EXTERNAL);
} else {
- if (ui->state.screen->id != VB2_SCREEN_DEVELOPER_INVALID_DISK)
+ if (ui->state.screen->id != VB2_SCREEN_DEVELOPER_INVALID_DISK) {
VB2_DEBUG("Invalid external disk: %#x\n", rv);
+ ui->error_code = VB2_UI_ERROR_DEV_EXTERNAL_BOOT_FAILED;
+ }
return vb2_ui_change_screen(
ui, VB2_SCREEN_DEVELOPER_INVALID_DISK);
}