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