Issue #484 has been updated by Robert Gruber.
Nico Huber wrote in #note-5:
Sorry, confused things earlier, I thought your script would also toggle the EHCI driver. Can you confirm that it works on a X200 or T500 with only the EHCI driver enabled? Is there a USB hub involved? (could also be embedded into the ThinkPad or the keyboard, `lsusb -t` would tell)
Yes, it works perfectly on X200 and T500 (and very likely on all other ICH9 devices) with only EHCI driver enabled. I had to use the switch script with the ehci option to make secondary payloads like coreinfo, nvramcui and tint useable.
Output from X200 and only EHCI driver enabled (in coreboot): # lsusb -t /: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M |__ Port 5: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 6: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M |__ Port 6: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
Output from T500 and only EHCI driver enabled (in coreboot): # lsusb -t /: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M |__ Port 5: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 7, If 0, Class=Hub, Driver=hub/3p, 480M |__ Port 1: Dev 8, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 2: Dev 9, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 2: Dev 9, If 1, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 3: Dev 10, If 0, Class=Human Interface Device, Driver=usbhid, 12M
---------------------------------------- Bug #484: No USB keyboard support with secondary payloads coreinfo, nvramcui, tint and probably others as well https://ticket.coreboot.org/issues/484#change-1524
* Author: Robert Gruber * Status: New * Priority: Normal * Category: Payloads * Target version: none * Start date: 2023-04-26 * Affected versions: 4.15, 4.16, 4.17, 4.18, 4.19, master * Needs backport to: master * Affected hardware: X200, T500, X220, X230 and probably others as well ---------------------------------------- When coreboot was compiled with default parameters any secondary payload I tried (coreinfo, nvramcui, tint) does not recognize keyboard input.
I found a simple workaround in libpayload until this behavior is fixed (please see attachment). Depending on used hardware I switch from ehci (X200, T500) to xhci (X220, X230) driver and vice verse. Both drivers (ehci and xhci) together obviously cause this problem. However, this is the default in libpayload configuration.
---Files-------------------------------- usb_ehci.sh (1.02 KB)