Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved
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.
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
the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
USB provides a low-cost means for attaching peripheral devices, including mass-storage devices, keyboards, mice, and printers, to a system. For complete information on the USB architecture, visit the USB website at http://www.usb.org.
USBA supports 126 hot-pluggable USB devices per USB bus. The maximum data transfer rate is 1.5 Mbits (low speed USB 1.x) or 12 Mbits (full speed USB 1.x) or 480 MBits (high speed USB 2.0) Mbits per second (Mbps).
USBA adheres to the Universal Serial Bus 2.0 specification and provides a transport layer abstraction to USB client drivers.
For information on how to write USB client drivers, see Writing Device Drivers. For the latest information on writing USB drivers, visit http://developers.sun.com/solaris/developer/support/driver/usb.html. For a complete list of USBA interfaces, see Intro(9F) and Intro(9S).
Devices without a driver may have a libusb(3LIB) application. For more information, see /usr/sfw/share/doc/libusb/libusb.txt.
Listed below are drivers and modules which either utilize or are utilized by USBA. Drivers in /kernel/drv are 32 bit drivers (x86 only). Drivers in /kernel/drv/sparcv9 or /kernel/drv/amd64 are 64 bit drivers.
Client Driver Function/Device kernel/drv/[sparcv9|amd64/]hid HID class kernel/drv/[sparcv9|amd64/]hubd hub class kernel/drv/[sparcv9|amd64/]hwahc HWA Host Controller class kernel/drv/[sparcv9|amd64/]hwarc HWA Radio Controller class kernel/drv/[sparcv9|amd64/]scsa2usb mass storage class kernel/drv/[sparcv9|amd64/]usbprn printer class kernel/drv/[sparcv9|amd64/]usb_as audio streaming class kernel/drv/[sparcv9|amd64/]usb_ac audio control class kernel/drv/[sparcv9|amd64/]usbvc video class kernel/drv/[sparcv9|amd64/]usb_mid multi-interface device kernel/drv/[sparcv9|amd64/]usb_ia interface-association driver kernel/drv/[sparcv9|amd64/]usbser_edge Edgeport USB to serial port kernel/drv/[sparcv9|amd64/]usbsksp Keyspan USB to serial port kernel/drv/[sparcv9|amd64/]usbsprl pl2303 USB to serial port kernel/drv/[sparcv9|amd64/]usbsacm CDC ACM class to serial port kernel/drv/[sparcv9|amd64/]ugen generic USB driver kernel/drv/[sparcv9|amd64/]wusb_ca WUSB Cable Association class kernel/drv/[sparcv9|amd64/]ohci open host controller driver kernel/drv/[sparcv9|amd64/]uhci universal host controller driver kernel/drv/[sparcv9|amd64/]ehci enhanced host controller driver
Client Streams Modules Function/Device /kernel/strmod/[sparcv9|amd64]usbkbm Keyboad /kernel/strmod/[sparcv9|amd64]usbms Mouse /kernel/strmod/[sparcv9|amd64]usb_ah Audio HID
Host Controller Interface Drivers Device /kernel/drv/[sparcv9|amd64]ehci Enhanced HCI /kernel/drv/[sparcv9|amd64]ohci Open HCI /kernel/drv/[sparcv|amd64/]uhci Univeral HCI
See attributes(5) for a description of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | PCI-based systems |
cfgadm_usb(1M), libusb(3LIB), attributes(5), ehci(7D), hid(7D), hubd(7D), ohci(7D), scsa2usb(7D), uhci(7D), usb_ac(7D), usb_as(7D), usb_ia(7D), usb_mid(7D), usbprn(7D), usbsacm(7D), usbser_edge(7D), usbsksp(7D), usbsprl(7D), usbvc(7D), ugen(7D), virtualkm(7D). Intro(9F), Intro(9S)
Writing Device Drivers
Universal Serial Bus Specification 2.0.
Interface Association Descriptor Engineering Change Notice (ECN)
System Administration Guide: Basic Administration
http://www.sun.com
Booting from USB mass-storage devices is not supported on SPARC, but is supported on X86.
The messages described below may appear on the system console as well as being logged. All messages are formatted in the following manner:
WARNING: Error message...
No driver found for device <device_name> (interface <number> node name=<node_name>)
The installed Solaris software does not contain a supported driver for this hardware. <number> is the interface number. <name> is either the device path name or the device name.
Draining callbacks timed out!
An internal error occured. Please reboot your system. If this problem persists, contact your system vendor.
The following messages may be logged into the system log. They are formatted in the following manner:
<device path><usba<instance number>): message...
Incorrect USB driver version for <n.m>.
Driver is incompatible with USBA framework.