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