Hi Dave! Dave Frodin wrote: > Is this what you were wanting?
Exactly! Thanks! I'll explain the important parts: > Bus 003 Device 002: ID 045e:009d Microsoft Corp. Wireless Optical Desktop 3.0 > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 2.00 > bDeviceClass 0 (Defined at Interface level) bDeviceClass=0 says that the device as a whole does not follow any single USB device class specification, and that class is instead specified per-interface. USB devices can have multiple interfaces, which all work in paralell. > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 59 > bNumInterfaces 2 There are two interfaces in this device. > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 0 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 3 Human Interface Device > bInterfaceSubClass 1 Boot Interface Subclass > bInterfaceProtocol 1 Keyboard The interface with bInterfaceNumber=0 is a HID class interface which implements the HID-specific "Boot Interface Subclass" and speaks using the HID Boot Subclass-specific "Keyboard" protocol. libpayload must use this interface for reading keystrokes. > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 1 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 3 Human Interface Device > bInterfaceSubClass 0 No Subclass > bInterfaceProtocol 0 None Tricky! The second interface, with bInterfaceNumber=1 is also a HID class interface, but no further information is provided as to how this interface actually works. The host software must explicitly know this device (as identified by vid:pid) in order to make any use of this second interface. libpayload can't use this for anything without explicit support for this keyboard. //Peter -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

