summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2012-09-06 14:55:31 -0700
committerShawn Nematbakhsh <shawnn@google.com>2012-10-17 16:52:30 -0700
commit077004ecd7abb229217c6574f7c972db25ff274b (patch)
tree4c5224669f3d289669a62cc6663473c8d1cc9993
parent3a8345120573ac40cf237ab7a31474b83effe700 (diff)
downloadvboot-077004ecd7abb229217c6574f7c972db25ff274b.tar.gz
BUTTERFLY-FIRMWARE: Check keyboard more often in recovery mode
Currently we check the keyboard each 250ms. This makes for a pretty choppy experience when changing languages. Change to check every 20ms, without changing the disk check interval (which remains 1s). BUG=chrome-os-partner:15396 BRANCH=butterfly TEST=manual, verify basic firmware functions. Change-Id: I2c7a810ec1358aa3ae7876c74ed7f857b9e14bde Original-Change-Id: I2ae411bc36fdb2badac11595b099bca43f116669 Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/35784 Reviewed-by: Shawn Nematbakhsh <shawnn@google.com> Tested-by: Shawn Nematbakhsh <shawnn@google.com>
-rw-r--r--firmware/lib/vboot_api_kernel.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c
index c0261e89..378400f0 100644
--- a/firmware/lib/vboot_api_kernel.c
+++ b/firmware/lib/vboot_api_kernel.c
@@ -285,8 +285,9 @@ fallout:
return VbTryLoadKernel(cparams, p, VB_DISK_FLAG_FIXED);
}
-/* Delay between disk checks in recovery mode */
-#define REC_DELAY_INCREMENT 250
+/* Delay in recovery mode */
+#define REC_DISK_DELAY 1000 /* Check disks every 1s */
+#define REC_KEY_DELAY 20 /* Check keys every 20ms */
/* Handle a recovery-mode boot */
VbError_t VbBootRecovery(VbCommonParams* cparams, LoadKernelParams* p) {
@@ -324,18 +325,18 @@ VbError_t VbBootRecovery(VbCommonParams* cparams, LoadKernelParams* p) {
/* Scan keyboard more frequently than media, since x86 platforms
* don't like to scan USB too rapidly. */
- for (i = 0; i < 4; i++) {
+ for (i = 0; i < REC_DISK_DELAY; i += REC_KEY_DELAY) {
VbCheckDisplayKey(cparams, VbExKeyboardRead(), &vnc);
if (VbExIsShutdownRequested())
return VBERROR_SHUTDOWN_REQUESTED;
- VbExSleepMs(REC_DELAY_INCREMENT);
+ VbExSleepMs(REC_KEY_DELAY);
}
}
}
/* Loop and wait for a recovery image */
while (1) {
- VBDEBUG(("VbBootRecovery() attempting to load kernel\n"));
+ VBDEBUG(("VbBootRecovery() attempting to load kernel2\n"));
retval = VbTryLoadKernel(cparams, p, VB_DISK_FLAG_REMOVABLE);
/* Clear recovery requests from failed kernel loading, since we're
@@ -352,7 +353,7 @@ VbError_t VbBootRecovery(VbCommonParams* cparams, LoadKernelParams* p) {
/* Scan keyboard more frequently than media, since x86 platforms don't like
* to scan USB too rapidly. */
- for (i = 0; i < 4; i++) {
+ for (i = 0; i < REC_DISK_DELAY; i += REC_KEY_DELAY) {
key = VbExKeyboardRead();
/* We might want to enter dev-mode from the Insert screen if... */
if (key == 0x04 && /* user pressed Ctrl-D */
@@ -382,7 +383,7 @@ VbError_t VbBootRecovery(VbCommonParams* cparams, LoadKernelParams* p) {
VbCheckDisplayKey(cparams, key, &vnc);
if (VbExIsShutdownRequested())
return VBERROR_SHUTDOWN_REQUESTED;
- VbExSleepMs(REC_DELAY_INCREMENT);
+ VbExSleepMs(REC_KEY_DELAY);
}
}