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.
16 For complete information on the USB architecture, visit the USB website at
19 USBA supports 126 hot-pluggable USB devices per USB bus.
20 The maximum data transfer rate is 5 Gbits (SuperSpeed USB 3.0), 480 Mbits (high
21 speed USB 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 libusb.
39 Listed below are drivers and modules which either utilize or are utilized by
43 are 32 bit drivers (x86 only).
45 .Pa /kernel/drv/sparcv9
49 .Bl -column -offset indent ".Pa kernel/drv/[sparcv9|amd64/]usbser_edge" "Edgeport USB to serial port"
51 .Ta Em Function/Device
54 .It Pa kernel/drv/[sparcv9|amd64/]hid
56 .It Pa kernel/drv/[sparcv9|amd64/]hubd
58 .It Pa kernel/drv/[sparcv9|amd64/]scsa2usb
59 .Ta mass storage class
60 .It Pa kernel/drv/[sparcv9|amd64/]usbprn
62 .It Pa kernel/drv/[sparcv9|amd64/]usb_as
63 .Ta audio streaming class
64 .It Pa kernel/drv/[sparcv9|amd64/]usb_ac
65 .Ta audio control class
66 .It Pa kernel/drv/[sparcv9|amd64/]usbvc
68 .It Pa kernel/drv/[sparcv9|amd64/]usb_mid
69 .Ta multi-interface device
70 .It Pa kernel/drv/[sparcv9|amd64/]usb_ia
71 .Ta interface-association driver
72 .It Pa kernel/drv/[sparcv9|amd64/]usbser_edge
73 .Ta Edgeport USB to serial port
74 .It Pa kernel/drv/[sparcv9|amd64/]usbsksp
75 .Ta Keyspan USB to serial port
76 .It Pa kernel/drv/[sparcv9|amd64/]usbsprl
77 .Ta pl2303 USB to serial port
78 .It Pa kernel/drv/[sparcv9|amd64/]usbsacm
79 .Ta CDC ACM class to serial port
80 .It Pa kernel/drv/[sparcv9|amd64/]ugen
81 .Ta generic USB driver
82 .It Pa kernel/drv/[sparcv9|amd64/]ohci
83 .Ta open host controller driver
84 .It Pa kernel/drv/[sparcv9|amd64/]uhci
85 .Ta universal host controller driver
86 .It Pa kernel/drv/[sparcv9|amd64/]ehci
87 .Ta enhanced host controller driver
88 .It Pa kernel/drv/[sparcv9|amd64/]xhci
89 .Ta extensible host controller driver
91 .Bl -column -offset indent ".Pa /kernel/strmod/[sparcv9|amd64/]usb_ah" "Function/Device"
94 .It Em Client Streams Modules
95 .Ta Em Function/Device
98 .It Pa /kernel/strmod/[sparcv9|amd64/]usbkbm
100 .It Pa /kernel/strmod/[sparcv9|amd64/]usbms
102 .It Pa /kernel/strmod/[sparcv9|amd64/]usb_ah
105 .Bl -column -offset indent ".Em Host Controller Interface Drivers" "Extensible HCI"
106 .It Em Host Controller Interface Drivers
110 .It Pa /kernel/drv/[amd64/]xhci
112 .It Pa /kernel/drv/[sparcv9|amd64/]ehci
114 .It Pa /kernel/drv/[sparcv9|amd64/]ohci
116 .It Pa /kernel/drv/[sparcv|amd64/]uhci
120 The messages described below may appear on the system console as well as being
122 All messages are formatted in the following manner:
123 .Bl -tag -width Sy -offset 2n
124 .It WARNING: Error message...
126 .Bl -tag -width Sy -offset 2n
127 .It Sy no driver found for device <device_name> (interface <number> node
129 The installed software does not contain a supported driver for this
131 <number> is the interface number.
132 <name> is either the device path name or the device name.
133 .It Sy Draining callbacks timed out!
134 An internal error occurred.
135 Please reboot your system.
136 If this problem persists, contact your system vendor.
139 The following messages may be logged into the system log.
140 They are formatted in the following manner:
141 .Bd -literal -offset 2n
142 <device path><usba<instance number>): message...
144 .Bl -tag -width Sy -offset 2n
145 .It Sy Incorrect USB driver version for <n.m>.
146 Driver is incompatible with USBA framework.
174 .%T Writing Device Drivers
177 .%T Universal Serial Bus Specification 3.0
180 .%T Interface Association Descriptor Engineering Change Notice (ECN)
183 .%T System Administration Guide: Basic Administration
186 Booting from USB mass-storage devices is not supported on SPARC, but is