[coreboot] [PATCH 1/4] Make initializing PS2 keyboard optional.

Kevin O'Connor kevin at koconnor.net
Thu Sep 9 02:43:39 CEST 2010

On Wed, Sep 08, 2010 at 09:44:01PM +0200, Patrick Georgi wrote:
> Am 08.09.2010 02:25, schrieb Kevin O'Connor:
> > I think libpayload should be updated.  I think adding the option to
> > coreboot is a good intermediate step.  It will give folks time to
> > update their payloads.  I'm also not sure if plan9 (or other less
> > common payloads) will have the proper support.
> Seems like Marc has found the reason in the other thread ("timeout
> during PS/2 keyboard init") - should we get that fixed, I'd prefer to
> keep the full init in coreboot unconditionally, even if it's 10-20ms.
> Could you try with "[PATCH] timeout during PS/2 keyboard init"
> (http://patchwork.coreboot.org/patch/1891/), if that gives an acceptable
> boot time for you? (unless I misunderstand and your gripe isn't with the
> overly long timeout we suffer on some chipsets, but with the time the
> init takes at all, however tiny)

That patch is separate from the underlying issue.  Talking to the PS2
keyboard is just plain slow.  Here is my boot log (epia-cn) with no
ps2 keyboard attached (Marc's patch doesn't impact this):

00.556: Primary IDE interface enabled
00.556: Secondary IDE interface enabled
00.704: No PS/2 keyboard detected.
00.705: CBFS:  Could not find file pci1106,3344.rom

Here is with a ps2 keyboard attached and Marc's fix not applied:

00.558: Primary IDE interface enabled
00.558: Secondary IDE interface enabled
01.367: Keyboard controller output buffer result timeout
01.368: CBFS:  Could not find file pci1106,3344.rom

Here it is with ps2 keyboard attached and Marc's fix applied:

00.559: Primary IDE interface enabled
00.559: Secondary IDE interface enabled
00.966: CBFS:  Could not find file pci1106,3344.rom

Here it is with CONFIG_DRIVERS_PS2_KEYBOARD set to 0:

00.562: Primary IDE interface enabled
00.563: Secondary IDE interface enabled
00.563: CBFS:  Could not find file pci1106,3344.rom

It's easy to get timing numbers on your own boards.  Just grab the
file tools/readserial.py from the seabios repo, and run: readserial.py
/dev/ttyS0 .  The tool measures data read from the serial port using
the host clock; it takes into account the time it takes the target
machine to write to the serial port.  I've found the numbers to be
very reproducible.


More information about the coreboot mailing list