1f50403d5SHans Petter Selasky.\" 2f50403d5SHans Petter Selasky.\" Copyright (c) 2008 Hans Petter Selasky. All rights reserved. 3f50403d5SHans Petter Selasky.\" 4f50403d5SHans Petter Selasky.\" Redistribution and use in source and binary forms, with or without 5f50403d5SHans Petter Selasky.\" modification, are permitted provided that the following conditions 6f50403d5SHans Petter Selasky.\" are met: 7f50403d5SHans Petter Selasky.\" 1. Redistributions of source code must retain the above copyright 8f50403d5SHans Petter Selasky.\" notice, this list of conditions and the following disclaimer. 9f50403d5SHans Petter Selasky.\" 2. Redistributions in binary form must reproduce the above copyright 10f50403d5SHans Petter Selasky.\" notice, this list of conditions and the following disclaimer in the 11f50403d5SHans Petter Selasky.\" documentation and/or other materials provided with the distribution. 12f50403d5SHans Petter Selasky.\" 13f50403d5SHans Petter Selasky.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14f50403d5SHans Petter Selasky.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15f50403d5SHans Petter Selasky.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16f50403d5SHans Petter Selasky.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17f50403d5SHans Petter Selasky.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18f50403d5SHans Petter Selasky.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19f50403d5SHans Petter Selasky.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20f50403d5SHans Petter Selasky.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21f50403d5SHans Petter Selasky.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22f50403d5SHans Petter Selasky.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23f50403d5SHans Petter Selasky.\" SUCH DAMAGE. 24f50403d5SHans Petter Selasky.\" 25*63722e52SEdward Tomasz Napierala.Dd August 7, 2019 26f50403d5SHans Petter Selasky.Dt USB_TEMPLATE 4 27f50403d5SHans Petter Selasky.Os 28f50403d5SHans Petter Selasky. 29f50403d5SHans Petter Selasky.Sh NAME 30f50403d5SHans Petter Selasky. 31f50403d5SHans Petter Selasky. 32f50403d5SHans Petter Selasky.Nm usb_template 33f50403d5SHans Petter Selasky. 345c785643SEdward Tomasz Napierala.Nd "USB device side templates" 35f50403d5SHans Petter Selasky. 36f50403d5SHans Petter Selasky. 37f50403d5SHans Petter Selasky.Sh SYNOPSIS 38f50403d5SHans Petter SelaskyTo compile this module into the kernel, place the following line in 39f50403d5SHans Petter Selaskyyour kernel configuration file: 40f50403d5SHans Petter Selasky.Bd -ragged -offset indent 41f50403d5SHans Petter Selasky.Cd "device usb_template" 42f50403d5SHans Petter Selasky.Ed 43f50403d5SHans Petter Selasky.Pp 44f50403d5SHans Petter SelaskyTo load the module at boot time, place the following line in 45f50403d5SHans Petter Selasky.Xr loader.conf 5 : 46f50403d5SHans Petter Selasky.Bd -literal -offset indent 47f50403d5SHans Petter Selaskyusb_template_load="YES" 48f50403d5SHans Petter Selasky.Ed 49f50403d5SHans Petter Selasky. 50f50403d5SHans Petter Selasky.Sh DESCRIPTION 51f50403d5SHans Petter SelaskyThe 52f50403d5SHans Petter Selasky.Nm 53f50403d5SHans Petter Selaskymodule implements various USB templates that are needed when 54f50403d5SHans Petter Selaskyprogramming an USB device side driver. 55f50403d5SHans Petter Selasky. 56f50403d5SHans Petter SelaskyA USB template consists of an USB device descriptor, one or more USB 57f50403d5SHans Petter Selaskyconfiguration descriptors, one or more USB interface descriptors, one 58f50403d5SHans Petter Selaskyor more USB endpoint descriptors, USB strings and additional USB 59f50403d5SHans Petter Selaskydescriptors. 60f50403d5SHans Petter Selasky. 615c785643SEdward Tomasz NapieralaUSB templates are selected using the 625c785643SEdward Tomasz Napierala.Va hw.usb.template 638e06491aSEdward Tomasz Napieralasysctl and tunable, 648e06491aSEdward Tomasz Napieralaor by using the 658e06491aSEdward Tomasz Napierala.Xr usbconfig 8 668e06491aSEdward Tomasz Napierala.Cm set_template 678e06491aSEdward Tomasz Napieralasubcommand. 68a461a5c5SEdward Tomasz NapieralaChanging the 69a461a5c5SEdward Tomasz Napierala.Va hw.usb.template 70a461a5c5SEdward Tomasz Napieralasysctl triggers reenumeration by the USB host; changes to other sysctls 71a461a5c5SEdward Tomasz Napieralamay not be visible to the host until reenumeration is performed. 72a461a5c5SEdward Tomasz Napierala.Pp 735c785643SEdward Tomasz NapieralaAvailable templates are: 745c785643SEdward Tomasz Napierala.Bl -column -offset 3n "Value" 755c785643SEdward Tomasz Napierala.It Em Value Ta Em Description 7654d09d9cSEdward Tomasz Napierala.It Dv 0 Ta USB Mass Storage, see 7754d09d9cSEdward Tomasz Napierala.Xr cfumass 4 7854d09d9cSEdward Tomasz Napierala.It Dv 1 Ta CDC Ethernet, see 7954d09d9cSEdward Tomasz Napierala.Xr cdce 4 805c785643SEdward Tomasz Napierala.It Dv 2 Ta Media Transfer Protocol (MTP) 8154d09d9cSEdward Tomasz Napierala.It Dv 3 Ta USB serial port, see 8254d09d9cSEdward Tomasz Napierala.Xr umodem 4 835c785643SEdward Tomasz Napierala.It Dv 4 Ta USB audio 845c785643SEdward Tomasz Napierala.It Dv 5 Ta USB keyboard 855c785643SEdward Tomasz Napierala.It Dv 6 Ta USB mouse 865c785643SEdward Tomasz Napierala.It Dv 7 Ta USB phone 875c785643SEdward Tomasz Napierala.It Dv 8 Ta CDC Ethernet and serial port 885c785643SEdward Tomasz Napierala.It Dv 9 Ta USB MIDI 893dc87e52SEdward Tomasz Napierala.It Dv 10 Ta CDC Ethernet, serial port, and storage 90*63722e52SEdward Tomasz Napierala.It Dv 11 Ta CDC Ethernet Emulation Model, see 91*63722e52SEdward Tomasz Napierala.Xr cdceem 4 925c785643SEdward Tomasz Napierala.El 93f50403d5SHans Petter Selasky. 948e06491aSEdward Tomasz Napierala.Sh SYSCTL VARIABLES 958e06491aSEdward Tomasz NapieralaThe following variables are available as both 968e06491aSEdward Tomasz Napierala.Xr sysctl 8 978e06491aSEdward Tomasz Napieralavariables and 988e06491aSEdward Tomasz Napierala.Xr loader 8 998e06491aSEdward Tomasz Napieralatunables: 1008e06491aSEdward Tomasz Napierala.Bl -tag -width indent 1018e06491aSEdward Tomasz Napierala.It Va hw.usb.template 1028e06491aSEdward Tomasz NapieralaCurrently selected template. 103a461a5c5SEdward Tomasz NapieralaSet to -1 to make the device disappear from the USB host point of view. 104d008c0d7SEdward Tomasz Napierala.It Va hw.usb.template_power 1056ad033c2SEdward Tomasz NapieralaUSB bus power consumption in mA at 5V. 106d008c0d7SEdward Tomasz NapieralaMust be between 0 and 500. 107d008c0d7SEdward Tomasz NapieralaSetting to 0 marks the device as self-powered. 108d008c0d7SEdward Tomasz NapieralaDefaults to 500mA. 1098e06491aSEdward Tomasz Napierala.It Va hw.usb.templates.N 1108e06491aSEdward Tomasz NapieralaConfiguration for template number 1118e06491aSEdward Tomasz Napierala.Va N . 1128e06491aSEdward Tomasz Napierala.It Va hw.usb.templates.N.vendor_id 1138e06491aSEdward Tomasz Napierala16-bit vendor identifier (VID), usually assigned by USB-IF. 1148e06491aSEdward Tomasz Napierala.It Va hw.usb.templates.N.product_id 1158e06491aSEdward Tomasz Napierala16-bit product identifier (PID). 1168e06491aSEdward Tomasz Napierala.It Va hw.usb.templates.N.manufacturer 1178e06491aSEdward Tomasz NapieralaString containing human-readable manufacturer name. 1188e06491aSEdward Tomasz Napierala.It Va hw.usb.templates.N.product 1198e06491aSEdward Tomasz NapieralaString containing human-readable product name. 1208e06491aSEdward Tomasz Napierala.El 121f50403d5SHans Petter Selasky.Sh SEE ALSO 122cc5bbcb2SEdward Tomasz Napierala.Xr cfumass 4 , 1235c785643SEdward Tomasz Napierala.Xr usb 4 , 1248e06491aSEdward Tomasz Napierala.Xr usfs 4 , 1258e06491aSEdward Tomasz Napierala.Xr usbconfig 8 126f50403d5SHans Petter Selasky.Sh STANDARDS 127f50403d5SHans Petter SelaskyThe 128f50403d5SHans Petter Selasky.Nm 129f50403d5SHans Petter Selaskymodule complies to the USB 1.0, 2.0 and 3.0 standard. 130f50403d5SHans Petter Selasky.Sh HISTORY 131f50403d5SHans Petter SelaskyThe 132f50403d5SHans Petter Selasky.Nm 133f50403d5SHans Petter Selaskymodule was written by 1346c899950SBaptiste Daroussin.An Hans Petter Selasky Aq Mt hselasky@FreeBSD.org . 135