BCM2033 chip based Bluetooth devices
Maksim Yevmenkin <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.mobile |
|---|---|
| Message-ID | <[email protected]> |
Hackers,
the BCM2033 hardware finally arrived :) now i have Belkin Bluetooth
USB adapter model F8T001. i'm very pleased to announce that i made
it work with my recent (2003-05-01) snapshot.
here is what you need to do
1) download 2003-05-01 snapshot from http://www.geocities.com/m_evmenkin/
2) apply attached patch to ubtbcmfw(4) driver
3) compile and install kernel modules
4) compile and install all user space tools
5) kldload ubtbcmfw
6) kldload ng_ubt
7) attach BCM2033 device. you should now have /dev/ubtbcmfwX.Y device nodes.
8) load firmware: bcmfw -n ubtbcmfw0 -m BCM2033-MD.hex -f BCM2033-FW.bin
9) after you have loaded the firmware you will see detach message from
the ubtbcmfw(4) driver followed by attach messages from ng_ubt(4) driver
10) at this point the device should be initialized and you should be
able to run rc.bluetooth start ubt0
please let me know if it works for you
thanks,
max
__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
ubtbcmfw.c.diff
(application/octet-stream, 1.2 KB)
Index: ubtbcmfw.c
===================================================================
RCS file: /usr/local/cvs/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c,v
retrieving revision 1.1
diff -u -5 -r1.1 ubtbcmfw.c
--- ubtbcmfw.c 27 Apr 2003 00:20:15 -0000 1.1
+++ ubtbcmfw.c 6 May 2003 02:30:36 -0000
@@ -232,20 +232,10 @@
usbd_abort_pipe(sc->sc_bulk_out_pipe);
usb_detach_wait(USBDEV(sc->sc_dev));
}
- if (sc->sc_intr_in_pipe != NULL) {
- usbd_close_pipe(sc->sc_intr_in_pipe);
- sc->sc_intr_in_pipe = NULL;
- }
-
- if (sc->sc_bulk_out_pipe != NULL) {
- usbd_close_pipe(sc->sc_bulk_out_pipe);
- sc->sc_intr_in_pipe = NULL;
- }
-
/* Destroy device nodes */
if (sc->sc_bulk_out_dev != NODEV) {
vp = SLIST_FIRST(&sc->sc_bulk_out_dev->si_hlist);
if (vp != NULL)
VOP_REVOKE(vp, REVOKEALL);
@@ -268,10 +258,21 @@
if (vp != NULL)
VOP_REVOKE(vp, REVOKEALL);
destroy_dev(sc->sc_ctrl_dev);
sc->sc_ctrl_dev = NODEV;
+ }
+
+ /* Close pipes */
+ if (sc->sc_intr_in_pipe != NULL) {
+ usbd_close_pipe(sc->sc_intr_in_pipe);
+ sc->sc_intr_in_pipe = NULL;
+ }
+
+ if (sc->sc_bulk_out_pipe != NULL) {
+ usbd_close_pipe(sc->sc_bulk_out_pipe);
+ sc->sc_intr_in_pipe = NULL;
}
return (0);
}