6ad033c2f1
MFC after: 2 weeks Sponsored by: The FreeBSD Foundation
134 lines
3.9 KiB
Groff
134 lines
3.9 KiB
Groff
.\" $FreeBSD$
|
|
.\"
|
|
.\" 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 May 24, 2018
|
|
.Dt USB_TEMPLATE 4
|
|
.Os
|
|
.
|
|
.Sh NAME
|
|
.
|
|
.
|
|
.Nm usb_template
|
|
.
|
|
.Nd "USB device side templates"
|
|
.
|
|
.
|
|
.Sh SYNOPSIS
|
|
To compile this module into the kernel, place the following line in
|
|
your kernel configuration file:
|
|
.Bd -ragged -offset indent
|
|
.Cd "device usb_template"
|
|
.Ed
|
|
.Pp
|
|
To load the module at boot time, place the following line in
|
|
.Xr loader.conf 5 :
|
|
.Bd -literal -offset indent
|
|
usb_template_load="YES"
|
|
.Ed
|
|
.
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
module implements various USB templates that are needed when
|
|
programming an USB device side driver.
|
|
.
|
|
A USB template consists of an USB device descriptor, one or more USB
|
|
configuration descriptors, one or more USB interface descriptors, one
|
|
or more USB endpoint descriptors, USB strings and additional USB
|
|
descriptors.
|
|
.
|
|
USB templates are selected using the
|
|
.Va hw.usb.template
|
|
sysctl and tunable,
|
|
or by using the
|
|
.Xr usbconfig 8
|
|
.Cm set_template
|
|
subcommand.
|
|
Changing the
|
|
.Va hw.usb.template
|
|
sysctl triggers reenumeration by the USB host; changes to other sysctls
|
|
may not be visible to the host until reenumeration is performed.
|
|
.Pp
|
|
Available templates are:
|
|
.Bl -column -offset 3n "Value"
|
|
.It Em Value Ta Em Description
|
|
.It Dv 0 Ta USB Mass Storage, see
|
|
.Xr cfumass 4
|
|
.It Dv 1 Ta CDC Ethernet, see
|
|
.Xr cdce 4
|
|
.It Dv 2 Ta Media Transfer Protocol (MTP)
|
|
.It Dv 3 Ta USB serial port, see
|
|
.Xr umodem 4
|
|
.It Dv 4 Ta USB audio
|
|
.It Dv 5 Ta USB keyboard
|
|
.It Dv 6 Ta USB mouse
|
|
.It Dv 7 Ta USB phone
|
|
.It Dv 8 Ta CDC Ethernet and serial port
|
|
.It Dv 9 Ta USB MIDI
|
|
.It Dv 10 Ta CDC Ethernet, serial port, and storage
|
|
.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.template
|
|
Currently selected template.
|
|
Set to -1 to make the device disappear from the USB host point of view.
|
|
.It Va hw.usb.template_power
|
|
USB bus power consumption in mA at 5V.
|
|
Must be between 0 and 500.
|
|
Setting to 0 marks the device as self-powered.
|
|
Defaults to 500mA.
|
|
.It Va hw.usb.templates.N
|
|
Configuration for template number
|
|
.Va N .
|
|
.It Va hw.usb.templates.N.vendor_id
|
|
16-bit vendor identifier (VID), usually assigned by USB-IF.
|
|
.It Va hw.usb.templates.N.product_id
|
|
16-bit product identifier (PID).
|
|
.It Va hw.usb.templates.N.manufacturer
|
|
String containing human-readable manufacturer name.
|
|
.It Va hw.usb.templates.N.product
|
|
String containing human-readable product name.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr cfumass 4 ,
|
|
.Xr usb 4 ,
|
|
.Xr usfs 4 ,
|
|
.Xr usbconfig 8
|
|
.Sh STANDARDS
|
|
The
|
|
.Nm
|
|
module complies to the USB 1.0, 2.0 and 3.0 standard.
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
module was written by
|
|
.An Hans Petter Selasky Aq Mt hselasky@FreeBSD.org .
|