[SeaBIOS] [PATCH] ps2: disable the keyboard and mouse before flushing the queue

Kevin O'Connor kevin at koconnor.net
Thu Apr 25 04:15:07 CEST 2013

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.


More information about the SeaBIOS mailing list