xref: /freebsd/share/man/man4/xhci.4 (revision e32fecd0c2c3ee37c47ee100f169e7eb0282a873)
1.\"
2.\" Copyright (c) 2011-2022 Hans Petter Selasky. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.\"
27.Dd October 21, 2022
28.Dt XHCI 4
29.Os
30.Sh NAME
31.Nm xhci
32.Nd USB eXtensible Host Controller driver
33.Sh SYNOPSIS
34.Cd "options USB_DEBUG"
35.Cd "device xhci"
36.Sh DESCRIPTION
37The
38.Nm
39driver provides support for the
40.Tn USB
41eXtensible Host Controller Interface,
42which allows use of
43.Tn USB
441.0, 2.0 and 3.0 devices on the same
45.Tn USB
46port.
47.Pp
48The
49.Tn XHCI
50controller supports
51.Tn USB
52connection speeds from 5.0Gbps and above when using USB 3.x
53compliant devices.
54.Sh HARDWARE
55The
56.Nm
57driver supports
58.Tn XHCI
59compatible controllers having PCI class 12 (serial bus),
60subclass 3 (USB) and programming interface 48 (XHCI).
61.Sh SYSCTL VARIABLES
62The following variables are available as both
63.Xr sysctl 8
64variables and
65.Xr loader 8
66tunables:
67.Bl -tag -width indent
68.It Va hw.usb.xhci.debug
69Set debug output level, where 0 is debugging disabled and larger
70values increase debug message verbosity.
71The default value is 0.
72.It Va hw.usb.xhci.dcepquirk
73Set to enable quirk for deconfiguration of endpoints.
74The default value is 0.
75.It Va hw.usb.xhci.ctlquirk
76Set to submit full USB control request as one job, up to 64kBytes.
77Else the USB control request will be split into multiple smaller
78requests.
79The default value is 1.
80.It Va hw.usb.xhci.streams
81Set to enable USB streams support.
82The default value is 0.
83.It Va hw.usb.xhci.route
84Set bitmap for switching EHCI ports to the XHCI controller.
85The default value is 0.
86.It Va hw.usb.xhci.polling
87Set to use a timer to poll the interrupt handler.
88The default value is 0.
89.It Va hw.usb.xhci.dma32
90Set to only use 32-bit DMA for the XHCI controller.
91The default value is 0.
92.It Va hw.usb.xhci.ctlstep
93Set to enable control endpoint status state stepping.
94The default value is 0.
95.El
96.Sh SEE ALSO
97.Xr ehci 4 ,
98.Xr ohci 4 ,
99.Xr uhci 4 and
100.Xr usb 4
101.Sh HISTORY
102The
103.Nm
104device driver first appeared in
105.Fx 8.2 .
106