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]
   6 .Dd May 13, 2017
   7 .Dt USBA 7D
   8 .Os
   9 .Sh NAME
  10 .Nm usba ,
  11 .Nm usb
  12 .Nd illumos USB Architecture (USBA)
  13 .Sh DESCRIPTION
  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
  17 http://www.usb.org.
  18 .Pp
  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).
  22 .Pp
  23 USBA adheres to the
  24 .Em Universal Serial Bus 3.0
  25 specification and provides a transport layer abstraction to USB client
  26 drivers.
  27 .Pp
  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
  33 .Xr Intro 9F
  34 or
  35 .Xr Intro 9S .
  36 .Pp
  37 Devices without a driver may be able to leverage libusb.
  38 .Sh FILES
  39 Listed below are drivers and modules which either utilize or are utilized by
  40 USBA.
  41 Drivers in
  42 .Pa /kernel/drv
  43 are 32 bit drivers (x86 only).
  44 Drivers in
  45 .Pa /kernel/drv/sparcv9
  46 or
  47 .Pa kernel/drv/amd64
  48 are 64 bit drivers.
  49 .Bl -column -offset indent ".Pa kernel/drv/[sparcv9|amd64/]usbser_edge" "Edgeport USB to serial port"
  50 .It Em Client Driver Ta Em Function/Device
  51 .It Ta
  52 .It Pa kernel/drv/[sparcv9|amd64/]hid Ta HID class
  53 .It Pa kernel/drv/[sparcv9|amd64/]hubd Ta hub class
  54 .It Pa kernel/drv/[sparcv9|amd64/]scsa2usb Ta mass storage class
  55 .It Pa kernel/drv/[sparcv9|amd64/]usbprn Ta printer class
  56 .It Pa kernel/drv/[sparcv9|amd64/]usb_as Ta audio streaming class
  57 .It Pa kernel/drv/[sparcv9|amd64/]usb_ac Ta audio control class
  58 .It Pa kernel/drv/[sparcv9|amd64/]usbvc Ta video class
  59 .It Pa kernel/drv/[sparcv9|amd64/]usb_mid Ta multi-interface device
  60 .It Pa kernel/drv/[sparcv9|amd64/]usb_ia Ta interface-association driver
  61 .It Pa kernel/drv/[sparcv9|amd64/]usbser_edge Ta Edgeport USB to serial port
  62 .It Pa kernel/drv/[sparcv9|amd64/]usbsksp Ta Keyspan USB to serial port
  63 .It Pa kernel/drv/[sparcv9|amd64/]usbsprl Ta pl2303 USB to serial port
  64 .It Pa kernel/drv/[sparcv9|amd64/]usbsacm Ta CDC ACM class to serial port
  65 .It Pa kernel/drv/[sparcv9|amd64/]ugen Ta generic USB driver
  66 .It Pa kernel/drv/[sparcv9|amd64/]ohci Ta open host controller driver
  67 .It Pa kernel/drv/[sparcv9|amd64/]uhci Ta universal host controller driver
  68 .It Pa kernel/drv/[sparcv9|amd64/]ehci Ta enhanced host controller driver
  69 .It Pa kernel/drv/[sparcv9|amd64/]xhci Ta extensible host controller driver
  70 .El
  71 .Bl -column -offset indent ".Pa /kernel/strmod/[sparcv9|amd64/]usb_ah" "Function/Device"
  72 .It Ta
  73 .It Em Client Streams Modules Ta Em Function/Device
  74 .It Ta
  75 .It Pa /kernel/strmod/[sparcv9|amd64/]usbkbm Ta Keyboad
  76 .It Pa /kernel/strmod/[sparcv9|amd64/]usbms Ta Mouse
  77 .It Pa /kernel/strmod/[sparcv9|amd64/]usb_ah Ta Audio HID
  78 .El
  79 .Bl -column -offset indent ".Em Host Controller Interface Drivers" "Extensible HCI"
  80 .It Em Host Controller Interface Drivers Ta Em Device
  81 .It Ta
  82 .It Pa /kernel/drv/[amd64/]xhci Ta Extensible HCI
  83 .It Pa /kernel/drv/[sparcv9|amd64/]ehci Ta Enhanced HCI
  84 .It Pa /kernel/drv/[sparcv9|amd64/]ohci Ta Open HCI
  85 .It Pa /kernel/drv/[sparcv|amd64/]uhci Ta Universal HCI
  86 .El
  87 .Sh DIAGNOSTICS
  88 The messages described below may appear on the system console as well as being
  89 logged.
  90 All  messages are formatted in the following manner:
  91 .Bl -tag -width Sy -offset 2n
  92 .It WARNING: Error message...
  93 .El
  94 .Bl -tag -width Sy -offset 2n
  95 .It Sy no driver found for device <device_name> (interface <number> node
  96 name=<node_name>)
  97 The installed software does not contain a supported driver for this
  98 hardware.
  99 <number> is the interface number.
 100 <name> is either the device path name or the device name.
 101 .It Sy Draining callbacks timed out!
 102 An internal error occurred.
 103 Please reboot your system.
 104 If this problem persists, contact your system vendor.
 105 .El
 106 .Pp
 107 The following messages may be logged into the system log.
 108 They are formatted in the following manner:
 109 .Bd -literal -offset 2n
 110 <device path><usba<instance number>): message...
 111 .Ed
 112 .Bl -tag -width Sy -offset 2n
 113 .It Sy Incorrect USB driver version for <n.m>.
 114 Driver is incompatible with USBA framework.
 115 .El
 116 .Sh SEE ALSO
 117 .Xr cfgadm_usb 1M ,
 118 .Xr attributes 5 ,
 119 .Xr ehci 7D ,
 120 .Xr hid 7D ,
 121 .Xr hubd 7D ,
 122 .Xr ohci 7D ,
 123 .Xr scsa2usb 7D ,
 124 .Xr ugen 7D ,
 125 .Xr uhci 7D ,
 126 .Xr usb_ac 7D ,
 127 .Xr usb_as 7D ,
 128 .Xr usb_ia 7D ,
 129 .Xr usb_mid 7D ,
 130 .Xr usbprn 7D ,
 131 .Xr usbsacm 7D ,
 132 .Xr usbser_edge 7D ,
 133 .Xr usbsksp 7D ,
 134 .Xr usbsprl 7D ,
 135 .Xr usbvc 7D ,
 136 .Xr virtualkm 7D ,
 137 .Xr xhci 7D ,
 138 .Xr Intro 9F ,
 139 .Xr Intro 9S
 140 .Pp
 141 .Rs
 142 .%T Writing Device Drivers
 143 .Re
 144 .Rs
 145 .%T Universal Serial Bus Specification 3.0
 146 .Re
 147 .Rs
 148 .%T Interface Association Descriptor Engineering Change Notice (ECN)
 149 .Re
 150 .Rs
 151 .%T System Administration Guide: Basic Administration
 152 .Re
 153 .Sh NOTES
 154 Booting from USB mass-storage devices is not supported on SPARC, but is
 155 supported on X86.