Issue #141 has been updated by Riku Viitanen.
Patch has now been merged to GRUB upstream. https://git.savannah.gnu.org/cgit/grub.git/commit/?id=830456a6e3b6ac92d10f92...
---------------------------------------- Bug #141: GRUB payload hangs in HP Elitebooks https://ticket.coreboot.org/issues/141#change-1531
* Author: Iru Cai * Status: New * Priority: Normal * Assignee: Iru Cai * Start date: 2017-09-19 ---------------------------------------- There may be some problem when initializing the keyboard controller, but SeaBIOS payload works fine. Using GRUB payload directly or chainload GRUB payload with SeaBIOS will both hang the system.
I modified GRUB and find it hangs in set_scancodes(void), when calling the first write_mode. After ``grub_outb (mode, KEYBOARD_REG_DATA);``, the ``keyboard_controller_wait_until_ready()`` function goes to an infinite loop.
~~~ write_mode (int mode) { unsigned i; for (i = 0; i < GRUB_AT_TRIES; i++) { grub_uint8_t ack; keyboard_controller_wait_until_ready (); grub_outb (0xf0, KEYBOARD_REG_DATA); keyboard_controller_wait_until_ready (); grub_outb (mode, KEYBOARD_REG_DATA); keyboard_controller_wait_until_ready (); ack = wait_ack (); if (ack == GRUB_AT_NACK) continue; if (ack == GRUB_AT_ACK) break; return 0; }
return (i != GRUB_AT_TRIES); } ~~~
---Files-------------------------------- seabios.log (31.5 KB) 0005-at-keyboard-timeout.patch (1.09 KB)