[SeaBIOS] K-TEK-M275TP-FN-BL-ML USB keyboard support
Аладышев Константин
aladyshev at nicevt.ru
Tue Oct 31 09:18:31 CET 2017
Ok, I'll provide SeaBIOS log later, but for now look at "lsusb -v" log from Linux:
""""
Bus 001 Device 004: ID 7777:7778
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x7777
idProduct 0x7778
bcdDevice 0.01
iManufacturer 1 KEY-IKB-MKB
iProduct 2 WWW.KEY-TEK.CN
iSerial 3 17177
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 59
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
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
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 73
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 52
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
""""
As you can see both mouse and keyboard in this device support "Boot Interface Subclass", but "wMaxPacketSize=0x0020 1x 32 bytes" in their endpoints. So this already wouldn't work, cause in file "src\hw\usb-hid.c" in function " usb_kbd_setup" check "(epdesc->wMaxPacketSize != 8)" wouldn't pass.
-----Original Message-----
From: Kevin O'Connor [mailto:kevin at koconnor.net]
Sent: Monday, October 30, 2017 10:42 PM
To: Аладышев Константин
Cc: seabios at seabios.org
Subject: Re: K-TEK-M275TP-FN-BL-ML USB keyboard support
On Mon, Oct 30, 2017 at 04:00:17PM +0300, Аладышев Константин wrote:
> Hello! I'm having problems with K-TEK-M275TP-FN-BL-ML keyboard
> (http://www.key-tek.cn/Productview.asp?id=777). It is USB device with
> keyboard and touchpad combined. It works in OS correctly, but doesn't
> work in SeaBIOS.
If you're experiencing a problem with SeaBIOS, please send the full debug log to the mailing list as described at:
https://www.seabios.org/Debugging
> I've tried to debug this issue and found that "usb_kbd_setup" function
> fails on "(epdesc->wMaxPacketSize != 8)" check, cause
> "epdesc->wMaxPacketSize" is actually 32. I've modified this "if"
> statement to pass 32 value also and now function completes
> successfully. But it didn't help to solve my issue. There are no
> interrupts from keyboard, "ehci_poll_intr" always returns -1 on
> check:
>
> if (token & QTD_STS_ACTIVE) {
> // No intrs found.
> return -1;
> }
>
> I don't know what to do now. What should I check next?
>
> Does SeaBIOS support USB keyboard+touchpad devices at all?
SeaBIOS should support any USB keyboard (or mouse) that supports the "USB HID boot protocol".
-Kevin
More information about the SeaBIOS
mailing list