XHCI(7D) Devices XHCI(7D)

xhci
Extensible Host Controller Interface Driver

usb@unit-address

The xhci driver supports PCI devices that implement versions 1.0 and 1.1 of the Extensible Host Controller Interface Specification. These devices provide support for USB 3.0, USB 2.x, and USB 1.x devices and is integrated into the broader illumos USB Architecture (USBA).

The xhci driver supports all four USB transfer types: bulk transfers, control transfers, interrupt transfers, and isochronous transfers.

Administrators do not interact with the xhci driver directly. USB devices are managed with cfgadm(1M). See cfgadm_usb(1M) for more information on how to specifically manage USB devices and how they are laid out in the system. cfgadm(1M) is only used to manage devices at a USB level. For example, a USB NIC would still be managed with dladm(1M) at a networking level.

On some x86 systems USB ports may be routed to either an instance of the xhci driver or an instance of the ehci(7D) driver. By default, all such ports are routed to the xhci driver, allowing those devices to operate at USB 3.x speed by default. This is most common on Intel platforms and chipsets. While this is controlled with the xhci-reroute property discussed below, changing it may not be sufficient to change the behavior. The BIOS or ACPI data for many x86 systems may toggle this automatically.

The xhci driver supports the following properties which may be tuned in the xhci driver's driver.conf(4) file.
xhci-reroute
The xhci-reroute property determines whether or not USB ports are re-routed to the xhci driver. The default behavior is to route such ports. To disable this, the property should be set to 0. Any other value, or the lack of the property, cause the default behavior to take place.

The xhci driver is only supported on x86 systems at this time.

/kernel/drv/amd64/xhci
Device driver (x86)
/kernel/drv/xhci.conf
Driver configuration file

cfgadm(1M), cfgadm_usb(1M), dladm(1M), driver.conf(4), ehci(7D), usba(7D)
January 10, 2020 illumos