summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2012-08-01 11:13:41 -0700
committerRandall Spangler <rspangler@chromium.org>2012-08-06 10:07:38 -0700
commit4b08263efdc8ec042307c6ce066236240f22b7b6 (patch)
treec589f5d2191e6c94b28e50c2d5b995600ed444bb
parent1d97ade8b503d2f3b239bed779cdda990b5a3e56 (diff)
downloadvboot-4b08263efdc8ec042307c6ce066236240f22b7b6.tar.gz
Revert "Enter key at DEV screen no longer transition to TONORM screen"
This reverts commit 2b45044edf702db665865de5b1b903346ed407a8 We will instead flush the keyboard buffer at the start of screens which accept keyboard input. Original-Change-Id: I1f5a480c6c1eeb7432b557dd4d984c1450ac973e (cherry picked from commit 6c9f09738045efd84156304c7684bab4a009a5f1) Change-Id: I597ad2e49c67b6bac7625ac9c0754d10da666e49 Reviewed-on: https://gerrit.chromium.org/gerrit/29280 Reviewed-by: Randall Spangler <rspangler@chromium.org> Tested-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r--firmware/include/vboot_api.h1
-rw-r--r--firmware/lib/vboot_api_kernel.c13
2 files changed, 7 insertions, 7 deletions
diff --git a/firmware/include/vboot_api.h b/firmware/include/vboot_api.h
index eea39220..9aa7f0ad 100644
--- a/firmware/include/vboot_api.h
+++ b/firmware/include/vboot_api.h
@@ -578,7 +578,6 @@ enum VbKeyCode_t {
VB_KEY_LEFT = 0x102,
VB_KEY_RIGHT = 0x103,
VB_KEY_CTRL_ENTER = 0x104,
- VB_KEY_CTRL_REFRESH = 0x105
};
/* Read the next keypress from the keyboard buffer.
diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c
index 54c5bec2..9c5dd7f4 100644
--- a/firmware/lib/vboot_api_kernel.c
+++ b/firmware/lib/vboot_api_kernel.c
@@ -149,11 +149,11 @@ VbError_t VbBootDeveloper(VbCommonParams* cparams, LoadKernelParams* p) {
case 0:
/* nothing pressed */
break;
+ case '\r':
case ' ':
case 0x1B:
- case VB_KEY_CTRL_REFRESH:
- /* Space, or ESC = request disable dev. Ctrl+F3 is used for testing. */
- VBDEBUG(("VbBootDeveloper() - user pressed SPACE/ESC/CTRL_F3\n"));
+ /* Enter, space, or ESC = reboot to recovery */
+ VBDEBUG(("VbBootDeveloper() - user pressed ENTER/SPACE/ESC\n"));
VbSetRecoveryRequest(VBNV_RECOVERY_RW_DEV_SCREEN);
VbAudioClose(audio);
return VBERROR_LOAD_KERNEL_RECOVERY;
@@ -223,16 +223,17 @@ static VbError_t VbConfirmChangeDevMode(VbCommonParams* cparams, int to_dev) {
while (1) {
if (VbExIsShutdownRequested())
return VBERROR_SHUTDOWN_REQUESTED;
- /* ENTER is always yes, ESC and SPACE are always no. */
+ /* ENTER is always yes, ESC is always no.
+ * SPACE is yes when leaving dev-mode, but is no when entering it. */
key = VbExKeyboardRead();
- if (key == '\r') {
+ if (key == '\r' || (key == ' ' && !to_dev)) {
VBDEBUG(("%s() - Yes: virtual dev-mode switch => %d\n",
__func__, to_dev));
if (TPM_SUCCESS != SetVirtualDevMode(to_dev))
return VBERROR_TPM_SET_BOOT_MODE_STATE;
VBDEBUG(("%s() - Reboot so it will take effect\n", __func__));
return VBERROR_TPM_REBOOT_REQUIRED;
- } else if (key == 0x1B || key == ' ') {
+ } else if (key == 0x1B || (key == ' ' && to_dev)) {
VBDEBUG(("%s() - No: don't change virtual dev-mode switch\n", __func__));
VbDisplayScreen(cparams, VB_SCREEN_RECOVERY_INSERT, 0, &vnc);
return VBERROR_SUCCESS;