XHCI(4)
β¨ NAME β¨
Okay bestie, welcome to the xhci(4) manual page! π This is the kernel interfaces manual moment, and we're about to get into the xhci driver β which is literally the USB eXtensible Host Controller driver. Periodt. π
β¨ SYNOPSIS β¨
options USB_DEBUG
device xhci
β¨ DESCRIPTION β¨
So here's the tea: the xhci driver provides support for the USB eXtensible Host Controller Interface, which β and this is the iconic part β allows use of USB 1.0, 2.0 and 3.0 devices on the same USB port. Like, all of them. Together. Slay. π₯
The XHCI controller supports USB connection speeds from 5.0Gbps and above when using USB 3.x compliant devices. Highkey fast. β‘
β¨ HARDWARE β¨
The xhci driver supports XHCI compatible controllers having PCI class 12 (serial bus), subclass 3 (USB) and programming interface 48 (XHCI). That's the vibe check for your hardware β if it matches, you're in. π¦
β¨ SYSCTL VARIABLES β¨
The following variables are available as both sysctl(8) variables and loader(8) tunables. Bestie, these are your knobs and dials β turn them with intention. ποΈ
hw.usb.xhci.debugβ Set debug output level, where0is debugging disabled and larger values increase debug message verbosity. The default value is0. So like, keep it at 0 unless you're in detective mode. π΅οΈββοΈhw.usb.xhci.dcepquirkβ Set to enable quirk for deconfiguration of endpoints. The default value is0. It's giving "only touch this if you know what you're doing" energy. πhw.usb.xhci.ctlquirkβ Set to submit full USB control request as one job, up to 64kBytes. Else the USB control request will be split into multiple smaller requests. The default value is1. So by default it's one big job, which is lowkey iconic of it. πͺhw.usb.xhci.streamsβ Set to enable USB streams support. The default value is0. Streams are off by default, just so you know. πhw.usb.xhci.routeβ Set bitmap for switching EHCI ports to the XHCI controller. The default value is0. It's a bitmap situation, bestie. πΊοΈhw.usb.xhci.pollingβ Set to use a timer to poll the interrupt handler. The default value is0. Polling is optional, not mandatory. π°οΈhw.usb.xhci.dma32β Set to only use 32-bit DMA for the XHCI controller. The default value is0. So it's not limited to 32-bit unless you say so. π§hw.usb.xhci.ctlstepβ Set to enable control endpoint status state stepping. The default value is0. That's the default, and the default is the default. πββοΈ
β¨ SEE ALSO β¨
Bestie, if you wanna go deeper, check out these bad boys:
They're all in the USB cinematic universe. π
β¨ HISTORY β¨
The xhci device driver first appeared in FreeBSD 8.2. That's the origin story, and it's giving legacy. π
Anyways, that's the whole manual page! π« This was from Debian, dated October 21, 2022, and it's the XHCI(4) page β so if you ever forget, just remember: xhci is the moment, the USB 3.x support is real, and the defaults are exactly what they are. No cap. π«Άπ
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 2011-2022 Hans Petter Selasky. All rights reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms