1 EHCI(7D) Devices EHCI(7D) 2 3 4 5 NAME 6 ehci - Enhanced host controller driver 7 8 SYNOPSIS 9 usb@unit-address 10 11 12 DESCRIPTION 13 The ehci driver is a USBA (Solaris USB Architecture) compliant nexus 14 driver that supports the Enhanced Host Controller Interface 15 Specification 2.0, an industry standard developed by Intel. 16 17 18 A USB 2.0 host controller includes one high-speed host controller and 19 zero or more USB 1.1 host controllers. The high-speed host controller 20 implements an EHCI (Enhanced Host Controller Interface) that is used 21 for all high-speed communications to high-speed-mode devices. 22 23 24 All USB 2.0 devices connected to the root ports of the USB 2.0 host 25 controller and all devices connected to a high-speed-mode hub should be 26 routed to the EHCI host controller. 27 28 29 All full- and low-speed devices connected to the root ports of the USB 30 2.0 host controller should be routed to the companion USB 1.1 host 31 controllers. (OHCI or UHCI host controller). 32 33 34 The ehci supports bulk, interrupt, control and isochronous transfers 35 (on USB1.x devices behind a USB2.0 hub). 36 37 FILES 38 /kernel/drv/sparcv9/ehci 39 Device driver (SPARC) 40 41 42 /kernel/drv/amd64/ehci 43 Device driver (x86) 44 45 46 /kernel/drv/ehci.conf 47 Driver configuration file 48 49 50 ATTRIBUTES 51 See attributes(5) for descriptions of the following attributes: 52 53 54 55 56 +---------------+-------------------------------+ 57 |ATTRIBUTE TYPE | ATTRIBUTE VALUE | 58 +---------------+-------------------------------+ 59 |Architecture | SPARC, x86, PCI-based systems | 60 +---------------+-------------------------------+ 61 62 SEE ALSO 63 add_drv(1M), prtconf(1M), rem_drv(1M), update_drv(1M), attributes(5), 64 hubd(7D), uhci(7D), ohci(7D), usba(7D) 65 66 67 Writing Device Drivers 68 69 70 Universal Serial Bus Specification 2.0 71 72 73 Enhanced Host Controller Interface Specification 1.0 74 75 76 System Administration Guide: Basic Administration 77 78 79 http://www.usb.org 80 81 82 http://www.intel.com/technology/usb/ehcispec.htm 83 84 DIAGNOSTICS 85 In addition to being logged, the following messages may appear on the 86 system console. All messages are formatted in the following manner: 87 88 WARNING: <device path> (ehci<instance number>): Message... 89 90 91 92 Unrecoverable USB hardware error. 93 94 There was an unrecoverable USB hardware error reported by the ehci 95 controller. Reboot the system. If this problem persists, contact 96 your system vendor. 97 98 99 No SOF interrupts. 100 101 No SOF interrupts have been received. This USB EHCI controller is 102 unusable. 103 104 105 Error recovery failure: Please hotplug the 2.0 hub at <device path>. 106 107 The driver failed to clear 2.0 hub's TT buffer. Remove and reinsert 108 the external USB2.0 hub. 109 110 111 Revision<xx> is not supported. 112 113 High speed USB devices prior to revision 0.95 are not supported. 114 115 116 117 The following messages may be entered into the system log. They are 118 formatted in the following manner: 119 120 <device path> (ehci<instance number>): Message... 121 122 123 124 Unable to take control from BIOS. Failure is ignored. 125 126 The driver was unable to take control of the EHCI hardware from the 127 system's BIOS. This failure is ignored. To abort the attach on this 128 take-over failure, comment out a property in ehci.conf. (x86 only). 129 130 131 Unable to take control from BIOS. 132 133 The driver is unable to take control of the EHCI hardware from the 134 system's BIOS and aborts the attach. High speed (USB 2.0) support 135 is disabled. In this case, all USB devices run at full/low speed. 136 Contact your system vendor or your system administrator for 137 possible changes in BIOS settings. You can disable a property in 138 ehci.conf to ignore this failure. (x86 only.) 139 140 141 Low speed device is not supported. 142 Full speed device is not supported. 143 144 The driver detected a low or full speed device on its root hub 145 port. Per USB 2.0 specification, the device should be routed to a 146 companion host controller (OHCI or UHCI). However, no attached 147 companion host controller appears to be available. Therefore, low 148 and full speed devices are not supported. 149 150 151 Low speed endpoint's poll interval of <n> ms is below threshold. 152 Rounding up to 8 ms. 153 154 Low speed endpoints are limited to polling intervals between 8 ms 155 and 255 ms. If a device reports a polling interval that is less 156 than 8 ms, the driver uses 8 ms instead. 157 158 159 Low speed endpoint's poll interval is greater than 255 ms. 160 161 The low speed device's polling interval is out of range. The host 162 controller does not allocate bandwidth for this device. This device 163 is not usable. 164 165 166 Full speed endpoint's poll interval must be between 1 and 255 ms. 167 168 The full speed device's polling interval is out of range. The host 169 controller does not allocate bandwidth for this device. This device 170 is not usable. 171 172 173 High speed endpoint's poll interval must be between 1 and 16 units. 174 175 The high speed device's polling interval is out of range. The host 176 controller will not allocate bandwidth for this device. This device 177 will not be usable. Refer to the USB specification, revision 2.0 178 for the unit definition. 179 180 181 ehci_modify_qh_status_bit: Failed to halt qh=<address>. 182 183 Error recovery failed. Please disconnect and reinsert all devices 184 or reboot. 185 186 187 Note - 188 189 Due to recently discovered incompatibilities with this USB 190 controller, USB2.x transfer support has been disabled. However, this 191 device continues to function as a USB1.x controller. Information on 192 enabling USB2.x support is provided in this man page. 193 194 VIA chips may not be compatible with this driver. To bind ehci 195 specifically to the chip and eliminate the warnings, and to enable 196 USB2.x support, a new, more specific driver alias (refer to 197 add_drv(1M) and update_drv(1M)) must be specified for ehci. By 198 default, the ehci alias is 'pciclass,0c0320.' The compatible names in 199 the prtconf(1M) output provides additional aliases. For example: 200 201 # prtconf -vp | grep pciclass,0c0320 202 compatible: 'pci1106,3104.1106.3104.2063' + 203 'pci1106,3104.1106.3104' + 'pci1106,3104' + 204 pci1106,3104.2063' + 'pci1106,3104' + 'pciclass,0c0320' + 205 'pciclass,0c03' 206 .... 207 208 209 A more specific alias is 'pci1106,3104.' Perform the follow- 210 ing step to add this alias, then reboot the system: 211 212 213 # update_drv -a -i '"pci1106,3104"' ehci 214 215 # reboot 216 217 218 219 After you apply the above workaround, the following message is 220 displayed in your system log: 221 222 223 Applying VIA workarounds. 224 225 226 227 January 10, 2020 EHCI(7D)