summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authoredisonhello <edisonhello@google.com>2021-08-16 15:51:23 +0800
committerCommit Bot <commit-bot@chromium.org>2021-09-14 08:03:07 +0000
commit50fa4408ada6b891ce77de2879ea0bd7f875787f (patch)
tree0aceb4197e2ffb27e6a574e8a6d43221100b70dd /firmware
parent5256851079ae8178557848090b701fc08eb5dbaa (diff)
downloadvboot-50fa4408ada6b891ce77de2879ea0bd7f875787f.tar.gz
vboot/ui: Remove manual recovery and related screen
This CL is a part of centralizing ui codes. The removed screens and unit tests will be added in depthcharge. Remove manual recovery menu and its action function. Remove recovery select, recovery phone step *, recovery disk step *, recovery invalid screens. Add vb2ex_manual_recovery_ui declaration. Remove unit tests of above screens, menu and actions. BUG=b:172339016 TEST=Hayato booted into developer mode TEST=Hayato showed manual recovery screen TEST=export CC=x86_64-pc-linux-gnu-clang DEBUG=1 DETACHABLE=0; \ make -j test_setup && make -j runtests TEST=export CC=x86_64-pc-linux-gnu-clang DEBUG=1 DETACHABLE=1; \ make -j test_setup && make -j runtests BRANCH=none Cq-Depend: chromium:3099529 Signed-off-by: edisonhello <edisonhello@google.com> Change-Id: I330098200d45d094d4faab90b96355b5b19e3fea Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/3116108 Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
Diffstat (limited to 'firmware')
-rw-r--r--firmware/2lib/2stub.c6
-rw-r--r--firmware/2lib/2ui.c38
-rw-r--r--firmware/2lib/2ui_screens.c155
-rw-r--r--firmware/2lib/include/2api.h11
-rw-r--r--firmware/2lib/include/2ui.h11
-rw-r--r--firmware/lib/vboot_api_kernel.c2
6 files changed, 18 insertions, 205 deletions
diff --git a/firmware/2lib/2stub.c b/firmware/2lib/2stub.c
index 3a7a36d4..368915b1 100644
--- a/firmware/2lib/2stub.c
+++ b/firmware/2lib/2stub.c
@@ -262,3 +262,9 @@ vb2_error_t vb2ex_broken_screen_ui(struct vb2_context *ctx)
{
return VB2_SUCCESS;
}
+
+__attribute__((weak))
+vb2_error_t vb2ex_manual_recovery_ui(struct vb2_context *ctx)
+{
+ return VB2_SUCCESS;
+}
diff --git a/firmware/2lib/2ui.c b/firmware/2lib/2ui.c
index 3cd14f0f..db79eb72 100644
--- a/firmware/2lib/2ui.c
+++ b/firmware/2lib/2ui.c
@@ -451,44 +451,6 @@ vb2_error_t developer_action(struct vb2_ui_context *ui)
}
/*****************************************************************************/
-/* Manual recovery */
-
-vb2_error_t vb2_manual_recovery_menu(struct vb2_context *ctx)
-{
- return vb2_ui_loop(ctx, VB2_SCREEN_RECOVERY_SELECT,
- manual_recovery_action);
-}
-
-vb2_error_t manual_recovery_action(struct vb2_ui_context *ui)
-{
- /* See if we have a recovery kernel available yet. */
- vb2_error_t rv = VbTryLoadKernel(ui->ctx, VB_DISK_FLAG_REMOVABLE);
- if (rv == VB2_SUCCESS)
- return VB2_REQUEST_UI_EXIT;
-
- /* If disk validity state changed, switch to appropriate screen. */
- if (ui->recovery_rv != rv) {
- VB2_DEBUG("Recovery VbTryLoadKernel %#x --> %#x\n",
- ui->recovery_rv, rv);
- ui->recovery_rv = rv;
- return vb2_ui_screen_change(ui,
- rv == VB2_ERROR_LK_NO_DISK_FOUND ?
- VB2_SCREEN_RECOVERY_SELECT :
- VB2_SCREEN_RECOVERY_INVALID);
- }
-
- /* Manual recovery keyboard shortcuts */
- if (ui->key == VB_KEY_CTRL('D') ||
- (DETACHABLE && ui->key == VB_BUTTON_VOL_UP_DOWN_COMBO_PRESS))
- return vb2_ui_screen_change(ui, VB2_SCREEN_RECOVERY_TO_DEV);
-
- if (ui->key == '\t')
- return vb2_ui_screen_change(ui, VB2_SCREEN_DEBUG_INFO);
-
- return VB2_SUCCESS;
-}
-
-/*****************************************************************************/
/* Diagnostics */
vb2_error_t vb2_diagnostic_menu(struct vb2_context *ctx)
diff --git a/firmware/2lib/2ui_screens.c b/firmware/2lib/2ui_screens.c
index 999d90e6..51e428a4 100644
--- a/firmware/2lib/2ui_screens.c
+++ b/firmware/2lib/2ui_screens.c
@@ -395,76 +395,6 @@ static const struct vb2_screen_info firmware_log_screen = {
};
/******************************************************************************/
-/* VB2_SCREEN_RECOVERY_SELECT */
-
-#define RECOVERY_SELECT_ITEM_PHONE 1
-#define RECOVERY_SELECT_ITEM_EXTERNAL_DISK 2
-#define RECOVERY_SELECT_ITEM_DIAGNOSTICS 3
-
-/* Set VB2_NV_DIAG_REQUEST and reboot. */
-static vb2_error_t launch_diagnostics_action(struct vb2_ui_context *ui)
-{
- vb2api_request_diagnostics(ui->ctx);
- return VB2_REQUEST_REBOOT;
-}
-
-vb2_error_t recovery_select_init(struct vb2_ui_context *ui)
-{
- ui->state->selected_item = RECOVERY_SELECT_ITEM_PHONE;
- if (!vb2api_phone_recovery_ui_enabled(ui->ctx)) {
- VB2_DEBUG("WARNING: Phone recovery not available\n");
- VB2_SET_BIT(ui->state->hidden_item_mask,
- RECOVERY_SELECT_ITEM_PHONE);
- ui->state->selected_item = RECOVERY_SELECT_ITEM_EXTERNAL_DISK;
- }
-
- if (!vb2api_diagnostic_ui_enabled(ui->ctx))
- VB2_SET_BIT(ui->state->hidden_item_mask,
- RECOVERY_SELECT_ITEM_DIAGNOSTICS);
-
- return VB2_SUCCESS;
-}
-
-static const struct vb2_menu_item recovery_select_items[] = {
- LANGUAGE_SELECT_ITEM,
- [RECOVERY_SELECT_ITEM_PHONE] = {
- .text = "Recovery using phone",
- .target = VB2_SCREEN_RECOVERY_PHONE_STEP1,
- },
- [RECOVERY_SELECT_ITEM_EXTERNAL_DISK] = {
- .text = "Recovery using external disk",
- .target = VB2_SCREEN_RECOVERY_DISK_STEP1,
- },
- [RECOVERY_SELECT_ITEM_DIAGNOSTICS] = {
- .text = "Launch diagnostics",
- .action = launch_diagnostics_action,
- },
- ADVANCED_OPTIONS_ITEM,
- POWER_OFF_ITEM,
-};
-
-static const struct vb2_screen_info recovery_select_screen = {
- .id = VB2_SCREEN_RECOVERY_SELECT,
- .name = "Recovery method selection",
- .init = recovery_select_init,
- .menu = MENU_ITEMS(recovery_select_items),
-};
-
-/******************************************************************************/
-/* VB2_SCREEN_RECOVERY_INVALID */
-
-static const struct vb2_menu_item recovery_invalid_items[] = {
- LANGUAGE_SELECT_ITEM,
- POWER_OFF_ITEM,
-};
-
-static const struct vb2_screen_info recovery_invalid_screen = {
- .id = VB2_SCREEN_RECOVERY_INVALID,
- .name = "Invalid recovery inserted",
- .menu = MENU_ITEMS(recovery_invalid_items),
-};
-
-/******************************************************************************/
/* VB2_SCREEN_RECOVERY_TO_DEV */
#define RECOVERY_TO_DEV_ITEM_CONFIRM 1
@@ -585,84 +515,6 @@ static const struct vb2_screen_info recovery_to_dev_screen = {
};
/******************************************************************************/
-/* VB2_SCREEN_RECOVERY_PHONE_STEP1 */
-
-static const struct vb2_menu_item recovery_phone_step1_items[] = {
- LANGUAGE_SELECT_ITEM,
- NEXT_ITEM(VB2_SCREEN_RECOVERY_PHONE_STEP2),
- BACK_ITEM,
- POWER_OFF_ITEM,
-};
-
-static const struct vb2_screen_info recovery_phone_step1_screen = {
- .id = VB2_SCREEN_RECOVERY_PHONE_STEP1,
- .name = "Phone recovery step 1",
- .menu = MENU_ITEMS(recovery_phone_step1_items),
-};
-
-/******************************************************************************/
-/* VB2_SCREEN_RECOVERY_PHONE_STEP2 */
-
-static const struct vb2_menu_item recovery_phone_step2_items[] = {
- LANGUAGE_SELECT_ITEM,
- BACK_ITEM,
- POWER_OFF_ITEM,
-};
-
-static const struct vb2_screen_info recovery_phone_step2_screen = {
- .id = VB2_SCREEN_RECOVERY_PHONE_STEP2,
- .name = "Phone recovery step 2",
- .menu = MENU_ITEMS(recovery_phone_step2_items),
-};
-
-/******************************************************************************/
-/* VB2_SCREEN_RECOVERY_DISK_STEP1 */
-
-static const struct vb2_menu_item recovery_disk_step1_items[] = {
- LANGUAGE_SELECT_ITEM,
- NEXT_ITEM(VB2_SCREEN_RECOVERY_DISK_STEP2),
- BACK_ITEM,
- POWER_OFF_ITEM,
-};
-
-static const struct vb2_screen_info recovery_disk_step1_screen = {
- .id = VB2_SCREEN_RECOVERY_DISK_STEP1,
- .name = "Disk recovery step 1",
- .menu = MENU_ITEMS(recovery_disk_step1_items),
-};
-
-/******************************************************************************/
-/* VB2_SCREEN_RECOVERY_DISK_STEP2 */
-
-static const struct vb2_menu_item recovery_disk_step2_items[] = {
- LANGUAGE_SELECT_ITEM,
- NEXT_ITEM(VB2_SCREEN_RECOVERY_DISK_STEP3),
- BACK_ITEM,
- POWER_OFF_ITEM,
-};
-
-static const struct vb2_screen_info recovery_disk_step2_screen = {
- .id = VB2_SCREEN_RECOVERY_DISK_STEP2,
- .name = "Disk recovery step 2",
- .menu = MENU_ITEMS(recovery_disk_step2_items),
-};
-
-/******************************************************************************/
-/* VB2_SCREEN_RECOVERY_DISK_STEP3 */
-
-static const struct vb2_menu_item recovery_disk_step3_items[] = {
- LANGUAGE_SELECT_ITEM,
- BACK_ITEM,
- POWER_OFF_ITEM,
-};
-
-static const struct vb2_screen_info recovery_disk_step3_screen = {
- .id = VB2_SCREEN_RECOVERY_DISK_STEP3,
- .name = "Disk recovery step 3",
- .menu = MENU_ITEMS(recovery_disk_step3_items),
-};
-
-/******************************************************************************/
/* VB2_SCREEN_DEVELOPER_MODE */
#define DEVELOPER_MODE_ITEM_RETURN_TO_SECURE 1
@@ -1365,14 +1217,7 @@ static const struct vb2_screen_info *screens[] = {
&advanced_options_screen,
&debug_info_screen,
&firmware_log_screen,
- &recovery_select_screen,
- &recovery_invalid_screen,
&recovery_to_dev_screen,
- &recovery_phone_step1_screen,
- &recovery_phone_step2_screen,
- &recovery_disk_step1_screen,
- &recovery_disk_step2_screen,
- &recovery_disk_step3_screen,
&developer_mode_screen,
&developer_to_norm_screen,
&developer_boot_external_screen,
diff --git a/firmware/2lib/include/2api.h b/firmware/2lib/include/2api.h
index 273ff012..df8c8d1a 100644
--- a/firmware/2lib/include/2api.h
+++ b/firmware/2lib/include/2api.h
@@ -1405,6 +1405,17 @@ vb2_error_t vb2ex_ec_battery_cutoff(void);
*/
vb2_error_t vb2ex_broken_screen_ui(struct vb2_context *ctx);
+/**
+ * UI for a manual recovery-mode boot.
+ *
+ * Enter the recovery menu, which prompts the user to insert recovery media,
+ * navigate the step-by-step recovery, or enter developer mode if allowed.
+ *
+ * @param ctx Vboot context
+ * @return VB2_SUCCESS, or non-zero error code.
+ */
+vb2_error_t vb2ex_manual_recovery_ui(struct vb2_context *ctx);
+
/* Helpers for bitmask operations */
#define VB2_SET_BIT(mask, index) ((mask) |= ((uint32_t)1 << (index)))
#define VB2_CLR_BIT(mask, index) ((mask) &= ~((uint32_t)1 << (index)))
diff --git a/firmware/2lib/include/2ui.h b/firmware/2lib/include/2ui.h
index 4ae73fc0..2ed65e9d 100644
--- a/firmware/2lib/include/2ui.h
+++ b/firmware/2lib/include/2ui.h
@@ -246,17 +246,6 @@ vb2_error_t vb2_ui_screen_change(struct vb2_ui_context *ui, enum vb2_screen id);
vb2_error_t vb2_developer_menu(struct vb2_context *ctx);
/**
- * UI for a manual recovery-mode boot.
- *
- * Enter the recovery menu, which prompts the user to insert recovery media,
- * navigate the step-by-step recovery, or enter developer mode if allowed.
- *
- * @param ctx Vboot context
- * @return VB2_SUCCESS, or non-zero error code.
- */
-vb2_error_t vb2_manual_recovery_menu(struct vb2_context *ctx);
-
-/**
* UI for a diagnostic tools boot.
*
* Enter the diagnostic tools menu, which provides debug information and
diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c
index 26d096d4..9978097d 100644
--- a/firmware/lib/vboot_api_kernel.c
+++ b/firmware/lib/vboot_api_kernel.c
@@ -195,7 +195,7 @@ vb2_error_t VbSelectAndLoadKernel(struct vb2_context *ctx,
/* Recovery boot. This has UI. */
if (vb2api_allow_recovery(ctx))
- VB2_TRY(vb2_manual_recovery_menu(ctx));
+ VB2_TRY(vb2ex_manual_recovery_ui(ctx));
else
VB2_TRY(vb2ex_broken_screen_ui(ctx));
} else if (vb2api_diagnostic_ui_enabled(ctx) &&