summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathew King <mathewk@chromium.org>2020-04-15 08:30:42 -0600
committerCommit Bot <commit-bot@chromium.org>2020-04-20 17:30:39 +0000
commitaa7e5d8a8b0900c3c41d6c12fbd9cf4a09d3a1a1 (patch)
treec7a3e61ff41961ddd7b3aeeb782c0a1549795bbf
parent63ef6156fac191eac5e22b40b40d17c53510c9d2 (diff)
downloadvboot-aa7e5d8a8b0900c3c41d6c12fbd9cf4a09d3a1a1.tar.gz
vboot: Remove the inital RMA screen
Do not show the initial RMA screen, go directly to vendor data entry. We do not want to give the user to the option to skip the RMA process. BUG=b:138812835 TEST=FEATURES=test emerge-drallion vboot_reference emerge-drallion depthcharge chromeos-bootimage Inital RMA screen no longer appears BRANCH=drallion Change-Id: I0d0f59e3915acd9082c148b69250a0e5d537c273 Signed-off-by: Mathew King <mathewk@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2150509 Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--firmware/lib/vboot_ui_legacy_wilco.c91
-rw-r--r--tests/vboot_legacy_clamshell_tests.c23
2 files changed, 28 insertions, 86 deletions
diff --git a/firmware/lib/vboot_ui_legacy_wilco.c b/firmware/lib/vboot_ui_legacy_wilco.c
index 1471c9dd..2971a1bc 100644
--- a/firmware/lib/vboot_ui_legacy_wilco.c
+++ b/firmware/lib/vboot_ui_legacy_wilco.c
@@ -133,9 +133,17 @@ static vb2_error_t vb2_enter_vendor_data_ui(struct vb2_context *ctx,
* Prompt the user to confirm the serial number and write to memory
*/
static vb2_error_t vb2_confirm_vendor_data_ui(struct vb2_context *ctx,
- char* data_value, VbScreenData *data)
+ char* data_value)
{
- VbDisplayScreen(ctx, VB_SCREEN_CONFIRM_VENDOR_DATA, 1, data);
+ VbScreenData data = {
+ .vendor_data = {
+ .input_text = data_value,
+ .flags = 0,
+ .selected_index = 0,
+ }
+ };
+
+ VbDisplayScreen(ctx, VB_SCREEN_CONFIRM_VENDOR_DATA, 1, &data);
/* We'll loop until the user decides what to do */
do {
uint32_t key_confirm = VbExKeyboardRead();
@@ -149,23 +157,18 @@ static vb2_error_t vb2_confirm_vendor_data_ui(struct vb2_context *ctx,
case 0:
/* Nothing pressed */
break;
- case VB_KEY_ESC:
- /* Escape pressed - return to developer screen */
- VB2_DEBUG("Confirm Vendor Data UI - user "
- "pressed Esc: exit to Developer screen\n");
- return VB2_SUCCESS;
case VB_KEY_RIGHT:
case VB_KEY_LEFT:
- data->vendor_data.selected_index =
- data->vendor_data.selected_index ^ 1;
+ data.vendor_data.selected_index =
+ data.vendor_data.selected_index ^ 1;
VbDisplayScreen(ctx, VB_SCREEN_CONFIRM_VENDOR_DATA,
- 1, data);
+ 1, &data);
VB2_DEBUG("selected_index:%d\n",
- data->vendor_data.selected_index);
+ data.vendor_data.selected_index);
break;
case VB_KEY_ENTER:
/* Enter pressed - write vendor data */
- if (data->vendor_data.selected_index == 0) {
+ if (data.vendor_data.selected_index == 0) {
VB2_DEBUG("Confirm Vendor Data UI - user "
"selected YES: "
"write vendor data (%s) to VPD\n",
@@ -195,7 +198,7 @@ static vb2_error_t vb2_confirm_vendor_data_ui(struct vb2_context *ctx,
default:
VB2_DEBUG("Confirm Vendor Data UI - pressed "
"key %#x\n", key_confirm);
- VbCheckDisplayKey(ctx, key_confirm, data);
+ VbCheckDisplayKey(ctx, key_confirm, &data);
break;
}
VbExSleepMs(KEY_DELAY_MS);
@@ -205,65 +208,27 @@ static vb2_error_t vb2_confirm_vendor_data_ui(struct vb2_context *ctx,
vb2_error_t vb2_vendor_data_ui(struct vb2_context *ctx)
{
+ vb2_error_t ret;
char data_value[VENDOR_DATA_LENGTH + 1];
- VbScreenData data = {.vendor_data = {data_value, 0, 0}};
- VbDisplayScreen(ctx, VB_COMPLETE_VENDOR_DATA, 0, NULL);
+ data_value[0] = '\0';
do {
- uint32_t key_set = VbExKeyboardRead();
+ VB2_DEBUG("Vendor Data UI - Enter VD set screen\n");
- if (vb2_want_shutdown(ctx, key_set)) {
- VB2_DEBUG("Vendor Data UI - shutdown requested!\n");
- return VBERROR_SHUTDOWN_REQUESTED;
- }
+ ret = vb2_enter_vendor_data_ui(ctx, data_value);
+ if (ret)
+ return ret;
- switch (key_set) {
- case 0:
- /* Nothing pressed - do nothing. */
- break;
- case VB_KEY_ESC:
- /* ESC pressed - boot normally */
- VB2_DEBUG("Vendor Data UI - boot normally\n");
+ /* Vendor data was not entered just return */
+ if (vendor_data_length(data_value) == 0)
return VB2_SUCCESS;
- break;
- case VB_KEY_ENTER:
- data_value[0] = '\0';
- do {
- /* ENTER pressed -
- enter vendor data set screen */
- VB2_DEBUG("Vendor Data UI - Enter VD set "
- "screen\n");
- vb2_error_t ret = vb2_enter_vendor_data_ui(
- ctx, data_value);
-
- if (ret)
- return ret;
-
- /* Vendor data was not entered just return */
- if (vendor_data_length(data_value) == 0) {
- return VB2_SUCCESS;
- }
-
- /* Reset confirmation answer to YES */
- data.vendor_data.selected_index = 0;
- ret = vb2_confirm_vendor_data_ui(
- ctx, data_value, &data);
-
- if (ret)
- return ret;
-
- /* Break if vendor data confirmed */
- if (data.vendor_data.selected_index == 0)
- return VB2_SUCCESS;
- } while (1);
- break;
- default:
- break;
- }
+ ret = vb2_confirm_vendor_data_ui(ctx, data_value);
+ if (ret)
+ return ret;
} while (1);
- return VB2_SUCCESS;
+ return VB2_SUCCESS;
}
vb2_error_t vb2_check_diagnostic_key(struct vb2_context *ctx,
diff --git a/tests/vboot_legacy_clamshell_tests.c b/tests/vboot_legacy_clamshell_tests.c
index f31adcd3..0d5594a1 100644
--- a/tests/vboot_legacy_clamshell_tests.c
+++ b/tests/vboot_legacy_clamshell_tests.c
@@ -897,7 +897,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data and reboot */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = '4';
mock_keypress[2] = '3';
mock_keypress[3] = '2';
@@ -912,7 +911,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; don't confirm and esc */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = '4';
mock_keypress[2] = '3';
mock_keypress[3] = '2';
@@ -929,7 +927,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; esc, don't confirm, and change last character */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = '4';
mock_keypress[2] = '3';
mock_keypress[3] = '2';
@@ -949,7 +946,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; extra keys ignored */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = '4';
mock_keypress[2] = '3';
mock_keypress[3] = '2';
@@ -965,7 +961,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; converts case */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = 'a';
mock_keypress[2] = 'B';
mock_keypress[3] = 'Y';
@@ -980,7 +975,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; backspace works */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = 'A';
mock_keypress[2] = 'B';
mock_keypress[3] = 'C';
@@ -999,7 +993,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; invalid chars don't print */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = '4';
mock_keypress[2] = '-';
mock_keypress[3] = '^';
@@ -1019,7 +1012,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; invalid chars don't print with backspace */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = '4';
mock_keypress[2] = '-';
mock_keypress[3] = VB_KEY_BACKSPACE; /* Should delete 4 */
@@ -1037,7 +1029,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; backspace only doesn't underrun */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = 'A';
mock_keypress[2] = VB_KEY_BACKSPACE;
mock_keypress[3] = VB_KEY_BACKSPACE;
@@ -1055,7 +1046,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; vowels not allowed after first char */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = 'A';
mock_keypress[2] = 'A';
mock_keypress[3] = 'B';
@@ -1075,7 +1065,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; too short */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = '1';
mock_keypress[2] = '2';
mock_keypress[3] = '3';
@@ -1092,7 +1081,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; esc from set screen */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = VB_KEY_ESC;
vbtlk_expect_fixed = 1;
TEST_EQ(VbBootDeveloperLegacyClamshell(ctx), VB2_ERROR_MOCK,
@@ -1102,7 +1090,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; esc from set screen with tag */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = '4';
mock_keypress[2] = '3';
mock_keypress[3] = '2';
@@ -1116,7 +1103,6 @@ static void VbBootDevVendorDataTest(void)
/* Enter set vendor data; esc from confirm screen */
ResetMocks();
ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ENTER; /* Enter vendor data setting */
mock_keypress[1] = '4';
mock_keypress[2] = '3';
mock_keypress[3] = '2';
@@ -1128,15 +1114,6 @@ static void VbBootDevVendorDataTest(void)
"Enter set vendor data esc from set screen");
TEST_EQ(set_vendor_data_called, 0, " VbExSetVendorData() not called");
- /* Escape from vendor data warning screen */
- ResetMocks();
- ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
- mock_keypress[0] = VB_KEY_ESC; /* Enter vendor data setting */
- vbtlk_expect_fixed = 1;
- TEST_EQ(VbBootDeveloperLegacyClamshell(ctx), VB2_ERROR_MOCK,
- "Enter set vendor data esc, don't confirm, change last character");
- TEST_EQ(set_vendor_data_called, 0, " VbExSetVendorData() not called");
-
VB2_DEBUG("...done.\n");
}