On Thu, 5 Mar 2015 08:02:57 -0800 Maksim Yevmenkin <[email protected]> wrote:
> On Wed, Mar 4, 2015 at 11:19 PM, Iain Hibbert <[email protected]> wrote: > > On Wed, 4 Mar 2015, maksim yevmenkin wrote: > > > >> >> looking for. of course, like i mentioned before, you need to hack > >> >> something to load firmware. older Broadcom chips can be loaded with > >> >> bcmfw(8). so its a good place to start. > >> > > >> > If I understand this correctly, bcmfw(8) needs ubtbcmfw(4) to be able to > >> > download firmware? > >> > >> You might be able to use ugen. Ok, I didn't think of that. A quick hack on a copy of bcmfw, and I have this: removed the check for '-m': tingo@kg-core1$ ~/work/bcmfw/bcmfw -n ugen3.3 -f ./Win32/BCM20702A1_001.002.014.0889.0927.hex bcmfw[45566]: Unsupported device, VendorID=0x50d, ProductID=0x65a that is as should be - cool. Next, I add the correct VendorID and ProductID, and comment out the mini-driver download part. Now I get this: tingo@kg-core1$ ~/work/bcmfw/bcmfw -n ugen3.3 -f ./Win32/BCM20702A1_001.002.014.0889.0927.hex bcmfw[45611]: Could not open(/dev/ugen3.3.1). No such file or directory (2) Hmm, change BCMFW_INTR_EP to 0 (zero) then. tingo@kg-core1$ ~/work/bcmfw/bcmfw -n ugen3.3 -f ./Win32/BCM20702A1_001.002.014.0889.0927.hex bcmfw[45673]: Could not open(/dev/ugen3.3.0). No such file or directory (2) Ok, I'm doing things I don't know here, but dump current description says (in part) root@kg-core1# usbconfig -d ugen3.3 dump_curr_config_desc ugen3.3: <BCM20702A0 Broadcom Corp> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x00da bNumInterfaces = 0x0004 bConfigurationValue = 0x0001 iConfiguration = 0x0000 <no string> bmAttributes = 0x00a0 bMaxPower = 0x0032 Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0000 bAlternateSetting = 0x0000 bNumEndpoints = 0x0003 bInterfaceClass = 0x00ff bInterfaceSubClass = 0x0001 bInterfaceProtocol = 0x0001 iInterface = 0x0000 <no string> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 <IN> bmAttributes = 0x0003 <INTERRUPT> wMaxPacketSize = 0x0010 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Endpoint 1 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0082 <IN> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Endpoint 2 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0002 <OUT> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 [...cut...] and Interface 1 is all isochronous, Interface 2 is bulk in / out, and Interface 3 is "special" (or rather, then endpoints of the interface are ...) How do I know (or figure out) which interface is the correct one to use? -- Torfinn Ingolfsen <[email protected]> _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth To unsubscribe, send any mail to "[email protected]"
