1 .\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved
2 .\" Copyright 2016 Joyent, Inc.
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
4 .\" See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with
5 .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
12 .Nd illumos USB Architecture (USBA)
14 USB provides a low-cost means for attaching peripheral devices, including
15 mass-storage devices, keyboards, mice, and printers, to a system. For complete
16 information on the USB architecture, visit the USB website at
19 USBA supports 126 hot-pluggable USB devices per USB bus. The maximum data
20 transfer rate is 5 Gbits (SuperSpeed USB 3.0), 480 Mbits (high speed USB
21 2.0), 12 Mbits (full speed USB 1.x), or 1.5 Mbits (low speed USB 1.x).
24 .Em Universal Serial Bus 3.0
25 specification and provides a transport layer abstraction to USB client
28 For information on how to write USB client drivers, see
29 .Em Writing Device Drivers .
30 For the latest information on writing USB drivers, visit
31 .Em http://illumos.org/books/wdd .
32 For a complete list of USBA interfaces, see
37 Devices without a driver may be able to leverage
40 Listed below are drivers and modules which either utilize or are utilized by
43 are 32 bit drivers (x86 only). Drivers in
44 .Pa /kernel/drv/sparcv9
48 .Bl -column -offset indent ".Pa kernel/drv/[sparcv9|amd64/]usbser_edge" "Edgeport USB to serial port"
50 .Ta Em Function/Device
53 .It Pa kernel/drv/[sparcv9|amd64/]hid
55 .It Pa kernel/drv/[sparcv9|amd64/]hubd
57 .It Pa kernel/drv/[sparcv9|amd64/]scsa2usb
58 .Ta mass storage class
59 .It Pa kernel/drv/[sparcv9|amd64/]usbprn
61 .It Pa kernel/drv/[sparcv9|amd64/]usb_as
62 .Ta audio streaming class
63 .It Pa kernel/drv/[sparcv9|amd64/]usb_ac
64 .Ta audio control class
65 .It Pa kernel/drv/[sparcv9|amd64/]usbvc
67 .It Pa kernel/drv/[sparcv9|amd64/]usb_mid
68 .Ta multi-interface device
69 .It Pa kernel/drv/[sparcv9|amd64/]usb_ia
70 .Ta interface-association driver
71 .It Pa kernel/drv/[sparcv9|amd64/]usbser_edge
72 .Ta Edgeport USB to serial port
73 .It Pa kernel/drv/[sparcv9|amd64/]usbsksp
74 .Ta Keyspan USB to serial port
75 .It Pa kernel/drv/[sparcv9|amd64/]usbsprl
76 .Ta pl2303 USB to serial port
77 .It Pa kernel/drv/[sparcv9|amd64/]usbsacm
78 .Ta CDC ACM class to serial port
79 .It Pa kernel/drv/[sparcv9|amd64/]ugen
80 .Ta generic USB driver
81 .It Pa kernel/drv/[sparcv9|amd64/]ohci
82 .Ta open host controller driver
83 .It Pa kernel/drv/[sparcv9|amd64/]uhci
84 .Ta universal host controller driver
85 .It Pa kernel/drv/[sparcv9|amd64/]ehci
86 .Ta enhanced host controller driver
87 .It Pa kernel/drv/[sparcv9|amd64/]xhci
88 .Ta extensible host controller driver
90 .Bl -column -offset indent ".Pa /kernel/strmod/[sparcv9|amd64/]usb_ah" "Function/Device"
93 .It Em Client Streams Modules
94 .Ta Em Function/Device
97 .It Pa /kernel/strmod/[sparcv9|amd64/]usbkbm
99 .It Pa /kernel/strmod/[sparcv9|amd64/]usbms
101 .It Pa /kernel/strmod/[sparcv9|amd64/]usb_ah
104 .Bl -column -offset indent ".Em Host Controller Interface Drivers" "Extensible HCI"
105 .It Em Host Controller Interface Drivers
109 .It Pa /kernel/drv/[amd64/]xhci
111 .It Pa /kernel/drv/[sparcv9|amd64/]ehci
113 .It Pa /kernel/drv/[sparcv9|amd64/]ohci
115 .It Pa /kernel/drv/[sparcv|amd64/]uhci
119 The messages described below may appear on the system console as well as being
120 logged. All messages are formatted in the following manner:
121 .Bl -tag -width Sy -offset 2n
122 .It WARNING: Error message...
124 .Bl -tag -width Sy -offset 2n
125 .It Sy no driver found for device <device_name> (interface <number> node
127 The installed software does not contain a supported driver for this
128 hardware. <number> is the interface number. <name> is either the device path name or the device name.
129 .It Sy Draining callbacks timed out!
130 An internal error occurred. Please reboot your system. If this problem
131 persists, contact your system vendor.
134 The following messages may be logged into the system log. They are formatted in
135 the following manner:
136 .Bd -literal -offset 2n
137 <device path><usba<instance number>): message...
139 .Bl -tag -width Sy -offset 2n
140 .It Sy Incorrect USB driver version for <n.m>.
141 Driver is incompatible with USBA framework.
170 .%T Writing Device Drivers
173 .%T Universal Serial Bus Specification 3.0
176 .%T Interface Association Descriptor Engineering Change Notice (ECN)
179 .%T System Administration Guide: Basic Administration
182 Booting from USB mass-storage devices is not supported on SPARC, but is