Belkin F8T065 doesn't register properly (BCM20702A0)

Torfinn Ingolfsen torfinn.ingolfsen at getmail.no
Thu Mar 5 22:43:35 UTC 2015


On Thu, 5 Mar 2015 08:02:57 -0800
Maksim Yevmenkin <maksim.yevmenkin at gmail.com> wrote:

> On Wed, Mar 4, 2015 at 11:19 PM, Iain Hibbert <plunky at ogmig.net> 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 at 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 at 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 at 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 at 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 <torfinn.ingolfsen at getmail.no>


More information about the freebsd-bluetooth mailing list