A USB 2.0 host controller includes one high-speed host controller and zero or more USB 1.1 host controllers. The high-speed host controller implements an EHCI (Enhanced Host Controller Interface) that is used for all high-speed communications to high-speed-mode devices.
All USB 2.0 devices connected to the root ports of the USB 2.0 host controller and all devices connected to a high-speed-mode hub should be routed to the EHCI host controller.
All full- and low-speed devices connected to the root ports of the USB 2.0 host controller should be routed to the companion USB 1.1 host controllers. (OHCI or UHCI host controller).
The ehci supports bulk, interrupt, control and isochronous transfers (on USB1.x devices behind a USB2.0 hub).
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
|Architecture||SPARC, x86, PCI-based systems|
Writing Device Drivers
Universal Serial Bus Specification 2.0
Enhanced Host Controller Interface Specification 1.0
System Administration Guide: Basic Administration
WARNING: <device path> (ehci<instance number>): Message...
Unrecoverable USB hardware error.
No SOF interrupts.
Error recovery failure: Please hotplug the 2.0 hub at <device path>.
Revision<xx> is not supported.
The following messages may be entered into the system log. They are formatted in the following manner:
<device path> (ehci<instance number>): Message...
Unable to take control from BIOS. Failure is ignored.
Unable to take control from BIOS.
Low speed device is not supported.
Full speed device is not supported.
Low speed endpoint's poll interval of <n> ms is below threshold. Rounding up to 8 ms.
Low speed endpoint's poll interval is greater than 255 ms.
Full speed endpoint's poll interval must be between 1 and 255 ms.
High speed endpoint's poll interval must be between 1 and 16 units.
ehci_modify_qh_status_bit: Failed to halt qh=<address>.
VIA chips may not be compatible with this driver. To bind ehci specifically to the chip and eliminate the warnings, and to enable USB2.x support, a new, more specific driver alias (refer to add_drv(1M) and update_drv(1M)) must be specified for ehci. By default, the ehci alias is 'pciclass,0c0320.' The compatible names in the prtconf(1M) output provides additional aliases. For example:
# prtconf -vp | grep pciclass,0c0320 compatible: 'pci1106,3104.1106.3104.2063' + 'pci1106,3104.1106.3104' + 'pci1106,3104' + pci1106,3104.2063' + 'pci1106,3104' + 'pciclass,0c0320' + 'pciclass,0c03' .... A more specific alias is 'pci1106,3104.' Perform the follow- ing step to add this alias, then reboot the system: # update_drv -a -i '"pci1106,3104"' ehci # reboot
After you apply the above workaround, the following message is displayed in your system log:
Applying VIA workarounds.
|January 10, 2020|