2015-03-24 21:37:07

by Jürgen Bausa

[permalink] [raw]
Subject: Broadcom 43340 BT support

I have a laptop (asus x205ta / intel-baytrail) with the broadcom 43340
chipset. However, while wireless is working now, bluetooth is not. I am
running debian jessie 32 bit with kernel 4.0rc4:

root@lina:/home/jba# hciconfig --all
hci0: Type: BR/EDR Bus: SDIO
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:0 acl:0 sco:0 commands:0 errors:0
Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Packet type: DM1 DH1 HV1
Link policy:
Link mode: SLAVE ACCEPT

root@lina:/home/jba# grep Bluetooth /var/log/messages
Mar 24 21:30:44 lina kernel: [ 6.521598] Bluetooth: Core ver 2.20
Mar 24 21:30:44 lina kernel: [ 6.521634] Bluetooth: HCI device and
connection manager initialized
Mar 24 21:30:44 lina kernel: [ 6.521642] Bluetooth: HCI socket layer
initialized
Mar 24 21:30:44 lina kernel: [ 6.521649] Bluetooth: L2CAP socket layer
initialized
Mar 24 21:30:44 lina kernel: [ 6.521664] Bluetooth: SCO socket layer
initialized
Mar 24 21:30:44 lina kernel: [ 6.557743] Bluetooth: Generic Bluetooth SDIO
driver ver 0.1
Mar 24 21:30:45 lina kernel: [ 10.922564] Bluetooth: BNEP (Ethernet
Emulation) ver 1.3
Mar 24 21:30:45 lina kernel: [ 10.922571] Bluetooth: BNEP filters: protocol
multicast
Mar 24 21:30:45 lina kernel: [ 10.922579] Bluetooth: BNEP socket layer
initialized


I have no idea where to start in order to enable BT. is there a driver yet? Do
I need a firmware file? Where to get it, where to put it?

Any hints welcome.

Regards,

Juergen


2015-03-25 22:31:07

by Jürgen Bausa

[permalink] [raw]
Subject: Re: Broadcom 43340 BT support

Hi Marcel,

Am Dienstag, 24. M?rz 2015, 16:42:29 schrieben Sie:
> Hi Juergen,
>
> > I have a laptop (asus x205ta / intel-baytrail) with the broadcom 43340
> > chipset. However, while wireless is working now, bluetooth is not. I am
> > running debian jessie 32 bit with kernel 4.0rc4:
> >
> > root@lina:/home/jba# hciconfig --all
> > hci0: Type: BR/EDR Bus: SDIO
> >
> > BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
> > DOWN
> > RX bytes:0 acl:0 sco:0 events:0 errors:0
> > TX bytes:0 acl:0 sco:0 commands:0 errors:0
> > Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> > Packet type: DM1 DH1 HV1
> > Link policy:
> > Link mode: SLAVE ACCEPT
>
> can you figure out which driver is claiming that it is SDIO based? I assumed
> the Baytrail Bluetooth controllers are all attached via UARTs. I didn't
> know that Broadcom had Bluetooth on SDIO. The WiFi part yes, but the
> Bluetooth part should be on an UART.

I think it is btsdio. When I rmmod the driver, I dont see hci0 anymore. So if
this is not the correct driver, I need another one. But it seems the correct
one is still under developement, correct?



>
> Please also check with "rfkill list" if the device might be blocked.

Its not blocked.

>
> Arend might know more, but you would need to dig into the list of SDIO
> devices. Sadly I think Linux does not yet have a lssdio tool. So maybe lshw
> can get us some info on what the kernel thinks about this device.
> Alternatively you need to dig you sysfs and look at ACPI. Maybe dmesg
> reveals something useful.
>

With lshw and lsusb I found nothing. Under /sys I found this:

root@lina:/sys/bus/sdio/drivers# ll
insgesamt 0
drwxr-xr-x 2 root root 0 M?r 25 22:09 brcmfmac_sdio
drwxr-xr-x 2 root root 0 M?r 25 22:09 btsdio
root@lina:/sys/bus/sdio/drivers# ll brcmfmac_sdio/
insgesamt 0
--w------- 1 root root 4096 M?r 25 23:12 bind
lrwxrwxrwx 1 root root 0 M?r 25 23:12 mmc1:0001:1 ->
../../../../devices/platform/INT33BB:00/mmc_host/mmc1/mmc1:0001/mmc1:0001:1
lrwxrwxrwx 1 root root 0 M?r 25 23:12 mmc1:0001:2 ->
../../../../devices/platform/INT33BB:00/mmc_host/mmc1/mmc1:0001/mmc1:0001:2
lrwxrwxrwx 1 root root 0 M?r 25 23:12 module -> ../../../../module/brcmfmac
--w------- 1 root root 4096 M?r 25 22:09 uevent
--w------- 1 root root 4096 M?r 25 23:12 unbind
root@lina:/sys/bus/sdio/drivers# ll btsdio/
insgesamt 0
--w------- 1 root root 4096 M?r 25 23:12 bind
lrwxrwxrwx 1 root root 0 M?r 25 23:12 mmc1:0001:3 ->
../../../../devices/platform/INT33BB:00/mmc_host/mmc1/mmc1:0001/mmc1:0001:3
--w------- 1 root root 4096 M?r 25 22:09 uevent
--w------- 1 root root 4096 M?r 25 23:12 unbind

If I interpret this correctly, Arend is right. There is a sdio driver claiming
the bt and uses the same mmc but with #3, while wifi takes #1 and #2.

Googling I found that the intel edison board also has a broadcom 43340. I also
read BT works on this device. So, there should be a driver for it, right?

Juergen

2015-03-25 10:44:43

by Arend van Spriel

[permalink] [raw]
Subject: Re: Broadcom 43340 BT support

On 03/25/15 00:42, Marcel Holtmann wrote:
> Hi Juergen,
>
>> I have a laptop (asus x205ta / intel-baytrail) with the broadcom 43340
>> chipset. However, while wireless is working now, bluetooth is not. I am
>> running debian jessie 32 bit with kernel 4.0rc4:
>>
>> root@lina:/home/jba# hciconfig --all
>> hci0: Type: BR/EDR Bus: SDIO
>> BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
>> DOWN
>> RX bytes:0 acl:0 sco:0 events:0 errors:0
>> TX bytes:0 acl:0 sco:0 commands:0 errors:0
>> Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
>> Packet type: DM1 DH1 HV1
>> Link policy:
>> Link mode: SLAVE ACCEPT
>
> can you figure out which driver is claiming that it is SDIO based? I assumed the Baytrail Bluetooth controllers are all attached via UARTs. I didn't know that Broadcom had Bluetooth on SDIO. The WiFi part yes, but the Bluetooth part should be on an UART.

According to documentation SDIO function #3 is providing access to BT
over SDIO. However, I did not (yet) come across any device that uses
that. I did find some devices where function #3 cis says BT and btsdio
claims it, but the BT part is not hooked up to it. So it is either usb
or uart. For uart our BT group plans to upstream a new driver (something
they never did before), but have not heard much on that recently.

> Please also check with "rfkill list" if the device might be blocked.
>
> Arend might know more, but you would need to dig into the list of SDIO devices. Sadly I think Linux does not yet have a lssdio tool. So maybe lshw can get us some info on what the kernel thinks about this device. Alternatively you need to dig you sysfs and look at ACPI. Maybe dmesg reveals something useful.

You can confirm it is function #3 of the same mmc device as wifi, but
chances are BT requires the UART driver.

Regards,
Arend

> Regards
>
> Marcel
>

2015-03-25 02:10:21

by [email protected]

[permalink] [raw]
Subject: RE: Broadcom 43340 BT support

From: J?rgen Bausa <[email protected]> Sent: Wednesday, March 25, 2015 5:37 AM
> To: [email protected]
> Subject: Broadcom 43340 BT support
>
> I have a laptop (asus x205ta / intel-baytrail) with the broadcom 43340
> chipset. However, while wireless is working now, bluetooth is not. I am
> running debian jessie 32 bit with kernel 4.0rc4:
>
> root@lina:/home/jba# hciconfig --all
> hci0: Type: BR/EDR Bus: SDIO
> BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
> DOWN
> RX bytes:0 acl:0 sco:0 events:0 errors:0
> TX bytes:0 acl:0 sco:0 commands:0 errors:0
> Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> Packet type: DM1 DH1 HV1
> Link policy:
> Link mode: SLAVE ACCEPT
>
> root@lina:/home/jba# grep Bluetooth /var/log/messages
> Mar 24 21:30:44 lina kernel: [ 6.521598] Bluetooth: Core ver 2.20
> Mar 24 21:30:44 lina kernel: [ 6.521634] Bluetooth: HCI device and
> connection manager initialized
> Mar 24 21:30:44 lina kernel: [ 6.521642] Bluetooth: HCI socket layer
> initialized
> Mar 24 21:30:44 lina kernel: [ 6.521649] Bluetooth: L2CAP socket layer
> initialized
> Mar 24 21:30:44 lina kernel: [ 6.521664] Bluetooth: SCO socket layer
> initialized
> Mar 24 21:30:44 lina kernel: [ 6.557743] Bluetooth: Generic Bluetooth
> SDIO
> driver ver 0.1
> Mar 24 21:30:45 lina kernel: [ 10.922564] Bluetooth: BNEP (Ethernet
> Emulation) ver 1.3
> Mar 24 21:30:45 lina kernel: [ 10.922571] Bluetooth: BNEP filters:
> protocol
> multicast
> Mar 24 21:30:45 lina kernel: [ 10.922579] Bluetooth: BNEP socket layer
> initialized
>
>
> I have no idea where to start in order to enable BT. is there a driver
> yet? Do I need a firmware file? Where to get it, where to put it?
>
> Any hints welcome.
>
> Regards,
>
> Juergen

For BCM43340 BT, there need firmware, you can ask Broadcom support to generate one firmware for your real board.

Regards,
Andy

2015-03-24 23:42:29

by Marcel Holtmann

[permalink] [raw]
Subject: Re: Broadcom 43340 BT support

Hi Juergen,

> I have a laptop (asus x205ta / intel-baytrail) with the broadcom 43340
> chipset. However, while wireless is working now, bluetooth is not. I am
> running debian jessie 32 bit with kernel 4.0rc4:
>
> root@lina:/home/jba# hciconfig --all
> hci0: Type: BR/EDR Bus: SDIO
> BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
> DOWN
> RX bytes:0 acl:0 sco:0 events:0 errors:0
> TX bytes:0 acl:0 sco:0 commands:0 errors:0
> Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> Packet type: DM1 DH1 HV1
> Link policy:
> Link mode: SLAVE ACCEPT

can you figure out which driver is claiming that it is SDIO based? I assumed the Baytrail Bluetooth controllers are all attached via UARTs. I didn't know that Broadcom had Bluetooth on SDIO. The WiFi part yes, but the Bluetooth part should be on an UART.

Please also check with "rfkill list" if the device might be blocked.

Arend might know more, but you would need to dig into the list of SDIO devices. Sadly I think Linux does not yet have a lssdio tool. So maybe lshw can get us some info on what the kernel thinks about this device. Alternatively you need to dig you sysfs and look at ACPI. Maybe dmesg reveals something useful.

Regards

Marcel