On Wed, Apr 24, 2013 at 08:32:09PM -0500, Anthony Liguori wrote:
If SeaBIOS is run as a payload via coreboot (and presumably as a CSM), then it's possible the keyboard or mouse will still be enabled. This can lead to data being queued even after the flush function attempts to clear the queue.
Disabling the keyboard/mouse prior to flushing is pretty standard in DOS programming so it's not surprising that it's needed here.
I believe this problem manifests with the Chromebook Pixel. People have reported that sometimes the 'ESC to Select Boot Devices' doesn't work. I can reproduce this faithfully by holding 'Ctrl-L' in the firmware screen during SeaBIOS initialization.
Thanks. I don't understand why keyboard/mouse events would be a problem. Those events should get discarded with the "Discarding ps2 data %02x (status=%02x)" message. (The role of the flush is to make sure there are no i8042 command responses pending - I don't think keyboard/mouse events are a problem.)
I can't test this fix on an actual Pixel because I don't know how to update SeaBIOS but I have tested the patch under QEMU.
Are you able to reproduce the problem under QEMU?
I'd guess someone on the coreboot list could describe how to reflash the pixel. I don't own one myself.
-Kevin