From 342f5f836c4c375d551087eab4c45fe904eef278 Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Mon, 17 Apr 2017 15:41:18 -0700 Subject: libpayload/libc/console: Flush input driver buffer on init When console input driver registers itself, perform flush of input buffer to avoid interpreting any stale key presses before libpayload is run. keyboard.c: Remove the redundant buffer flush. 8250.c: Ensure that serial_hardware_is_present is set before call to add input driver. BUG=b:37273808 TEST=Verified that any key presses in serial console before payload is up do not have any effect after the payload starts running. Change-Id: I46f1b6715ccf6418f5b2c741bf90db2ece26a60d Signed-off-by: Furquan Shaikh Reviewed-on: https://review.coreboot.org/19345 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- payloads/libpayload/drivers/keyboard.c | 3 --- payloads/libpayload/drivers/serial/8250.c | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) (limited to 'payloads/libpayload/drivers') diff --git a/payloads/libpayload/drivers/keyboard.c b/payloads/libpayload/drivers/keyboard.c index 23c87803a8..056aa24957 100644 --- a/payloads/libpayload/drivers/keyboard.c +++ b/payloads/libpayload/drivers/keyboard.c @@ -310,9 +310,6 @@ void keyboard_init(void) if (inb(0x64) == 0xFF) return; - /* Empty keyboard buffer */ - while (keyboard_havechar()) keyboard_getchar(); - console_add_input_driver(&cons); } diff --git a/payloads/libpayload/drivers/serial/8250.c b/payloads/libpayload/drivers/serial/8250.c index 1fcf36dee6..9327304248 100644 --- a/payloads/libpayload/drivers/serial/8250.c +++ b/payloads/libpayload/drivers/serial/8250.c @@ -137,10 +137,10 @@ void serial_console_init(void) return; serial_init(); + serial_hardware_is_present = 1; console_add_input_driver(&consin); console_add_output_driver(&consout); - serial_hardware_is_present = 1; } void serial_putchar(unsigned int c) -- cgit v1.2.3