Issue #484 has been updated by Nico Huber.
It's generally expected to have all the drivers enabled. Even in a single system, they can coexist.
Depending on the platform, ports can be shared by multiple controllers. Some EHCI controllers can't handle low- and full-speed devices, then a UHCI or OHCI controller has to take over. This is the case with the ICH9 devices (X200, T500). There have been regressions noticed with the UHCI driver, maybe it's rather the hand-over mechanism from the EHCI driver that is broken.
The X220 should either only have an EHCI controller or a discrete xHCI one for specific ports (could be wrong, but I can't imagine how shared ports would work with a discrete xHCI controller). So no idea how disabling xHCI makes a difference there.
The X230 has ports shared by EHCI and xHCI, but both should be able to handle low- and full-speed devices.
Given that USB enumeration has some delicate reset procedures, especially when ports need to be handed over from one controller to another, the USB keyboard itself could also make trouble. Did you test multiple USB devices?
---------------------------------------- Bug #484: No USB keyboard support with secondary payloads coreinfo, nvramcui, tint and probably others as well https://ticket.coreboot.org/issues/484#change-1515
* Author: Robert Gruber * Status: New * Priority: Normal * 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)