[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.

-Kevin




More information about the coreboot mailing list