diff options
Diffstat (limited to 'static/freebsd/man4/usb.4')
| -rw-r--r-- | static/freebsd/man4/usb.4 | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/static/freebsd/man4/usb.4 b/static/freebsd/man4/usb.4 new file mode 100644 index 00000000..40cb8675 --- /dev/null +++ b/static/freebsd/man4/usb.4 @@ -0,0 +1,178 @@ +.\" Copyright (c) 1997, 1998 Nick Hibma <n_hibma@FreeBSD.org> +.\" Copyright (c) 2008 Hans Petter Selasky. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd September 7, 2020 +.Dt USB 4 +.Os +.Sh NAME +.Nm usb +.Nd Universal Serial Bus +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device usb" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +usb_load="YES" +.Ed +.Sh USERLAND PROGRAMMING +USB functions can be accessed from userland through the libusb library. +See +.Xr libusb 3 +for more information. +.Sh DESCRIPTION +.Fx +provides machine-independent bus support and drivers for +USB devices in host and device side mode. +.Pp +The +.Nm +driver has three layers: +.Bl -tag -width 6n -offset indent +.It USB Controller (Bus) +.It USB Device +.It USB Driver +.El +.Pp +The controller attaches to a physical bus +like +.Xr pci 4 . +The USB bus attaches to the controller, and the root hub attaches +to the controller. +Any devices attached to the bus will attach to the root hub +or another hub attached to the USB bus. +.Pp +The +.Nm uhub +device will always be present as it is needed for the root hub. +.Sh INTRODUCTION TO USB +The USB is a system where external devices can be connected to a PC. +The most common USB speeds are: +.Bl -tag -width 6n -offset indent +.It Low Speed (1.5 MBit/sec) +.It Full Speed (12 MBit/sec) +.It High Speed (480 MBit/sec) +.It SuperSpeed (5 GBit/sec) +.El +.Pp +Each USB has a USB controller that is the master of the bus. +The physical communication is simplex which means the host controller only +communicates with one USB device at a time. +.Pp +There can be up to 127 devices connected to an USB HUB tree. +The addresses are assigned dynamically by the host when each device is +attached to the bus. +.Pp +Within each device there can be up to 16 endpoints. +Each endpoint is individually addressed and the addresses are static. +Each of these endpoints will communicate in one of four different modes: +.Em control , isochronous , bulk , +or +.Em interrupt . +A device always has at least one endpoint. +This endpoint has address 0 and is a control endpoint and is used to give +commands to and extract basic data, such as descriptors, from the device. +Each endpoint, except the control endpoint, is unidirectional. +.Pp +The endpoints in a device are grouped into interfaces. +An interface is a logical unit within a device, e.g., a compound device with +both a keyboard and a trackball, would present one interface for each. +An interface can sometimes be set into different modes, called alternate +settings, which affects how it operates. +Different alternate settings can have different endpoints within it. +.Pp +A device may operate in different configurations. +Depending on the configuration, the device may present different sets of +endpoints and interfaces. +.Pp +The bus enumeration of the USB bus proceeds in several steps: +.Bl -enum +.It +Any interface specific driver can attach to the device. +.It +If none is found, generic interface class drivers can attach. +.El +.Sh SYSCTL VARIABLES +The following variables are available as both +.Xr sysctl 8 +variables and +.Xr loader 8 +tunables: +.Bl -tag -width indent +.It Va hw.usb.debug +Debug output level, where 0 is debugging disabled and larger values increase +debug message verbosity. +Default is 0. +.El +.Sh SEE ALSO +The USB specifications can be found at: +.Pp +.D1 Pa https://www.usb.org/documents +.Pp +.Xr libusb 3 , +.Xr aue 4 , +.Xr axe 4 , +.Xr axge 4 , +.Xr cue 4 , +.Xr ehci 4 , +.Xr kue 4 , +.Xr mos 4 , +.Xr ohci 4 , +.Xr pci 4 , +.Xr rue 4 , +.Xr ucom 4 , +.Xr udav 4 , +.Xr uhci 4 , +.Xr uhid 4 , +.Xr ukbd 4 , +.Xr ulpt 4 , +.Xr umass 4 , +.Xr ums 4 , +.Xr uplcom 4 , +.Xr urio 4 , +.Xr uvscom 4 , +.Xr xhci 4 +.Xr usbconfig 8 , +.Xr usbdi 9 +.Sh STANDARDS +The +.Nm +module complies with the USB 3.0 standard. +.Sh HISTORY +The +.Nm +module has been inspired by the +.Nx +USB stack initially written by +.An Lennart Augustsson . +The +.Nm +module was written by +.An Hans Petter Selasky Aq Mt hselasky@FreeBSD.org . |
