coreboot-kgpe-d16/payloads/libpayload/drivers
Paul Menzel 7ae606f57f libpayload: Reset PS/2 keyboard
Loading a libpayload based payload like coreinfo or FILO from SeaBIOS or
GRUB pressing keys does not give the expected results.

For example, pressing F1 gives the character 24 translated to scan code
6a. ESC for example 43 (111) in coreinfo loaded from SeaBIOS on QEMU
Q35.

The problem is not reproducible using the payload directly, that means
without SeaBIOS or GRUB. The problem seems to be, that those have already
initialized the PS/2 controller and AT keyboard.

Comparing it with coreboot’s PS/2 keyboard code, the keyboard needs to
be reset. That seems to fix the issue, when the keyboard was initialized
before.

TEST=Build coreboot for QEMU Q35 with SeaBIOS, and coreinfo as secondary
payload. Run

    qemu-system-i386 -M q35 -L /dev/shm -bios build/coreboot.rom -serial stdio

press 3 to select the coreinfo payload, and verify that the keys F1 and
F2 are working.

Same with coreinfo loaded from GRUB on the ASRock E350M1.

Change-Id: I2732292ac316d4bc0029ecb5c95fa7d1e7d68947
Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/32951
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
2019-05-27 08:15:42 +00:00
..
i8042 libpayload: Reset PS/2 keyboard 2019-05-27 08:15:42 +00:00
serial libpayload: classify all keyboards 2019-05-13 09:20:25 +00:00
storage libpayload: ahci: Prevent memory leaks when failing on init 2019-05-15 17:54:02 +00:00
timer mediatek: Use the 64-bit timer 2019-04-17 04:32:26 +00:00
udc
usb libpayload: Fix potential NULL pointer dereference 2019-04-09 17:25:41 +00:00
video payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00
Makefile.inc libpayload: Remove unused timer/serial drivers 2018-12-05 14:07:17 +00:00
cbmem_console.c
hid.c
mouse_cursor.c payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00
nvram.c payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00
options.c libpayload/option table: Don't pad string entries with garbage 2019-04-11 12:03:07 +00:00
pci.c
speaker.c