1f2bb1caeSJulian Elischer.\" Copyright (c) 2003 Maksim Yevmenkin <m_evmenkin@yahoo.com> 2f2bb1caeSJulian Elischer.\" All rights reserved. 3f2bb1caeSJulian Elischer.\" 4f2bb1caeSJulian Elischer.\" Redistribution and use in source and binary forms, with or without 5f2bb1caeSJulian Elischer.\" modification, are permitted provided that the following conditions 6f2bb1caeSJulian Elischer.\" are met: 7f2bb1caeSJulian Elischer.\" 1. Redistributions of source code must retain the above copyright 8f2bb1caeSJulian Elischer.\" notice, this list of conditions and the following disclaimer. 9f2bb1caeSJulian Elischer.\" 2. Redistributions in binary form must reproduce the above copyright 10f2bb1caeSJulian Elischer.\" notice, this list of conditions and the following disclaimer in the 11f2bb1caeSJulian Elischer.\" documentation and/or other materials provided with the distribution. 12f2bb1caeSJulian Elischer.\" 13f2bb1caeSJulian Elischer.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14f2bb1caeSJulian Elischer.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15f2bb1caeSJulian Elischer.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16f2bb1caeSJulian Elischer.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17f2bb1caeSJulian Elischer.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18f2bb1caeSJulian Elischer.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19f2bb1caeSJulian Elischer.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20f2bb1caeSJulian Elischer.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21f2bb1caeSJulian Elischer.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22f2bb1caeSJulian Elischer.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23f2bb1caeSJulian Elischer.\" SUCH DAMAGE. 24f2bb1caeSJulian Elischer.\" 250986ab12SMaksim Yevmenkin.\" $Id: ubtbcmfw.4,v 1.3 2003/05/21 19:37:35 max Exp $ 2672f00208SRuslan Ermilov.\" 270a771a3bSChristian Brueffer.Dd November 22, 2006 28f2bb1caeSJulian Elischer.Dt UBTBCMFW 4 29f2bb1caeSJulian Elischer.Os 30f2bb1caeSJulian Elischer.Sh NAME 31f2bb1caeSJulian Elischer.Nm ubtbcmfw 32f2bb1caeSJulian Elischer.Nd Firmware driver for Broadcom BCM2033 chip based Bluetooth USB devices 33fc1a4ecfSWarner Losh.Sh SYNOPSIS 340a771a3bSChristian BruefferTo compile this driver into the kernel, 350a771a3bSChristian Bruefferplace the following line in your 360a771a3bSChristian Bruefferkernel configuration file: 370a771a3bSChristian Brueffer.Bd -ragged -offset indent 38fc1a4ecfSWarner Losh.Cd "device ubtbcmfw" 390a771a3bSChristian Brueffer.Ed 400a771a3bSChristian Brueffer.Pp 410a771a3bSChristian BruefferAlternatively, to load the driver as a 420a771a3bSChristian Brueffermodule at boot time, place the following line in 430a771a3bSChristian Brueffer.Xr loader.conf 5 : 440a771a3bSChristian Brueffer.Bd -literal -offset indent 450a771a3bSChristian Bruefferubtbcmfw_load="YES" 460a771a3bSChristian Brueffer.Ed 47f2bb1caeSJulian Elischer.Sh DESCRIPTION 48f2bb1caeSJulian ElischerThe 49f2bb1caeSJulian Elischer.Nm 50f2bb1caeSJulian Elischeris a firmware driver for Broadcom BCM2033 chip based Bluetooth USB devices. 51f2bb1caeSJulian ElischerIt provides minimal access to the parts of the device required to download 52f2bb1caeSJulian Elischerfirmware. 53f2bb1caeSJulian Elischer.Pp 5472f00208SRuslan ErmilovThe 55f2bb1caeSJulian Elischer.Nm 56f2bb1caeSJulian Elischerdriver creates three fixed endpoint device nodes. 57f2bb1caeSJulian Elischer.Pp 58f2bb1caeSJulian ElischerThe control transfers can only happen on the control endpoint which 5972f00208SRuslan Ermilovis always endpoint 0. 6045bc8ec1SChristian BruefferControl requests are issued by 61f2bb1caeSJulian Elischer.Xr ioctl 2 62f2bb1caeSJulian Elischercalls. 63f2bb1caeSJulian Elischer.Pp 6472f00208SRuslan ErmilovOnly incoming transfers are supported on an interrupt endpoint. 6572f00208SRuslan ErmilovTo perform I/O on an interrupt endpoint, 66f2bb1caeSJulian Elischer.Xr read 2 6772f00208SRuslan Ermilovshould be used. 6845bc8ec1SChristian BruefferAll I/O operations on an interrupt endpoint are unbuffered. 69f2bb1caeSJulian ElischerInterrupt endpoint is always endpoint 1. 70f2bb1caeSJulian Elischer.Pp 7172f00208SRuslan ErmilovOnly outgoing bulk transfers are supported on a bulk endpoint. 7272f00208SRuslan ErmilovTo perform I/O on a bulk endpoint, 73f2bb1caeSJulian Elischer.Xr write 2 7472f00208SRuslan Ermilovshould be used. 7572f00208SRuslan ErmilovAll I/O operations on a bulk endpoint are unbuffered. 760af22117SMike PritchardOutgoing bulk endpoint is always endpoint 2. 77f2bb1caeSJulian Elischer.Pp 78f2bb1caeSJulian ElischerThe control endpoint (endpoint 0) handles the following 79f2bb1caeSJulian Elischer.Xr ioctl 2 80f2bb1caeSJulian Elischercalls: 8172f00208SRuslan Ermilov.Bl -tag -width indent 82f2bb1caeSJulian Elischer.It Dv USB_GET_DEVICE_DESC Pq Vt usb_device_descriptor_t 83f2bb1caeSJulian ElischerReturn the device descriptor. 84f2bb1caeSJulian Elischer.El 85f2bb1caeSJulian Elischer.Sh FILES 86f2bb1caeSJulian Elischer.Bl -tag -width ".Pa /dev/ubtbcmfw Ns Ar N Ns Pa \&. Ns Ar EE" -compact 87f2bb1caeSJulian Elischer.It Pa /dev/ubtbcmfw Ns Ar N Ns Pa \&. Ns Ar EE 88f2bb1caeSJulian ElischerEndpoint 89f2bb1caeSJulian Elischer.Ar EE 90f2bb1caeSJulian Elischerof device 91f2bb1caeSJulian Elischer.Ar N . 92f2bb1caeSJulian Elischer.El 93f2bb1caeSJulian Elischer.Sh SEE ALSO 94f2bb1caeSJulian Elischer.Xr ng_ubt 4 , 9572f00208SRuslan Ermilov.Xr ugen 4 , 9672f00208SRuslan Ermilov.Xr usb 4 , 97f2bb1caeSJulian Elischer.Xr bcmfw 8 98f2bb1caeSJulian Elischer.Sh HISTORY 99f2bb1caeSJulian ElischerThe 100f2bb1caeSJulian Elischer.Nm 101f2bb1caeSJulian Elischerdriver was implemented in 102f2bb1caeSJulian Elischer.Fx 5.0 . 103f2bb1caeSJulian Elischer.Sh AUTHORS 104*6c899950SBaptiste Daroussin.An Maksim Yevmenkin Aq Mt m_evmenkin@yahoo.com 1059cbda590SRuslan Ermilov.Sh BUGS 1069cbda590SRuslan ErmilovMost likely. 1079cbda590SRuslan ErmilovPlease report if found. 108