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@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".
Patrick