[coreboot] Using USB keyboard in payloads

Patrick Georgi patrick at georgi-clan.de
Mon Nov 19 19:00:41 CET 2012

Am 19.11.2012 18:19, schrieb Dave Frodin:
> First I got a current libpayload. That made the biggest difference.
> Evidently something critical changed in the last month.
Nico improved the stack a lot, in particular the OHCI implementation 
(and then bug fixes pretty much everywhere).

>    00:12.2 4396:1002.2 EHCI controller
>    * found device (0x0403:0x6014, USB 2.0), class: unsupported class 
> ff
>    00:12.0 4397:1002.0 OHCI controller
>    OHCI Version 1.0
>    00:13.2 4396:1002.2 EHCI controller
>    00:13.0 4397:1002.0 OHCI controller
>    OHCI Version 1.0
>    * found device (0x045e:0x009d, USB 2.0)
All that stuff happens because havekey() is the first opportunity for 
the system to run usb_poll(), and then to enumerate the devices.
If you want to control this better, just run usb_poll() separately.

>    NOTICE: This driver defaults to using the first interface.
>    This might be the wrong choice and lead to limited functionality
>    of the device. Please report such a case to coreboot at coreboot.org
>    as you might be the first.
>    , class: HID
>      Keyboard layout 'us'
This only means that the device provides multiple interfaces. In USB 
you have to select one, and the HID driver simply defaults to the first. 
We didn't find a useful clue what to do in limited environments when 
encountering such a situation - ie. any standard that proposes that the 
first interface should provide a "typical keyboard".


More information about the coreboot mailing list