2016-02-22 09:17:01

by Arend Van Spriel

[permalink] [raw]
Subject: Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ?

+ Ilya
+ bt list

On 21-2-2016 15:17, Jérôme de Bretagne wrote:
> Hi,
>
> Since a commit from last April, the BCM4324(1) rev B5 chipset is
> supported in the Linux kernel and WiFi networking has been working
> like a charm on a Lenovo ThinkPad 8 tablet (running Linux
> 4.3.0-1-amd64 from Debian). A big "Thanks" for that.
>
> On the other hand, the Bluetooth part doesn't show up at all (empty
> result with hciconfig) and doesn't seem active with that same 4.3
> kernel. I don't even see any error message in dmesg about Bluetooth.
>
> bluetooth/btbcm.c mentions quite a few chipsets (UART/USB) but not the
> 4324 rev B5 so I'm not sure of the current Bluetooth status for that
> specific one. Is this chipset enabled for Bluetooth starting with
> Linux 4.4 or in the coming 4.5 version maybe? I couldn't check 4.4
> properly yet as this kernel version locks currently on my tablet (for
> other reasons).
>
> If it is not fully supported yet, feel free to ask any info that could
> help enable Bluetooth for this chipset on the ThinkPad 8 tablet!
>
> Thanks,
>
> Jérôme
>
>
> P.S. I guess the following page
> https://wireless.wiki.kernel.org/en/users/Drivers/brcm80211 could be
> updated to show that Wireless LAN is properly working.


2016-02-28 19:54:40

by Loic Poulain

[permalink] [raw]
Subject: Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ?

Hi Jerome,

> It seems this BCM4324(1) rev B5 chipset is not initialized from a
> Bluetooth point of view, while working great for Wi-Fi.
I suppose this combo chip uses SDIO bus for WiFi and UART for Bluetooth.
If so, you need to attach the correct UART port to the hci_uart line
discipline from user-space.

> I've seen recent patches adding support for some devices simply by
> adding their respective ACPI ID in hci_bcm.c (BCM2E7C for MacBook
> 2015, BCM2E65 for the Asus T100TAF, BCM2E54 for the HP Omni 10) so
> I've just taken a look at the data listed by the ACPI subsystem on
> this tablet:
>
> $ ls /sys/bus/acpi/devices/BCM* -d1
> /sys/bus/acpi/devices/BCM2E3C:00
> /sys/bus/acpi/devices/BCM2E55:00

Usually, Broadcom BT controller is described in the ACPI table.
You can retrieve your ACPI table at /sys/firmware/acpi/tables/DSDT and
decompile it with iasl.
You should have a Bluetooth node (BTHX):
Device (BTH1)
{
Name (_HID, "BCM...")

With some gpio/irq resources. (0: wakeup, 1: power-, 2:host-wakeup).

> Neither of these 2 IDs (BCM2E3C, BCM2E55) is listed in hci_bcm.c. It's
> just a guess at this stage but could one of these be the missing
> element required in hci_bcm.c to initialize Bluetooth on the Lenovo
> ThinkPad 8 Tablet maybe? I don't know if the following commands might
> give a hint to filter between the two IDs:
>
> $ cat /sys/bus/acpi/devices/BCM2E3C\:00/status
> 0
> $ cat /sys/bus/acpi/devices/BCM2E55\:00/status
> 15

Check in your acpi table if one of them matches a bluetooth node.
Then, try to add it in the acpi device id list in hci_bcm.c.

Second step is to attach the device, but you need to find the correct
tty to use.
If your ACPI table is correct, BCM acpi device should appear as a child
of a tty device in sysfs.
The physical_node symlink in your device directory (sys/bus/acpi...)
gives you the hierarchical path.

Now, you can run btattach (bluez tool):
$ btattach -B /dev/ttySX -P bcm

And check that hci0 has been created
$ hciconfig

Regards,
Loic

--
Intel Open Source Technology Center
http://oss.intel.com/


2016-02-28 18:23:11

by Jérôme de Bretagne

[permalink] [raw]
Subject: Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ?

Hi,

I've been able to continue my investigation and I can confirm that I
am getting the same results on both Linux kernel:
- 4.4 - linux-image-4.4.0-1-amd64 from Debian (v4.4.2-3)
- 4.5 rc4 - linux-image-4.5.0-rc4-amd64 from Debian (4.5~rc4-1~exp1)
and in both cases no error message whatsoever related to Bluetooth.

It seems this BCM4324(1) rev B5 chipset is not initialized from a
Bluetooth point of view, while working great for Wi-Fi.

I've seen recent patches adding support for some devices simply by
adding their respective ACPI ID in hci_bcm.c (BCM2E7C for MacBook
2015, BCM2E65 for the Asus T100TAF, BCM2E54 for the HP Omni 10) so
I've just taken a look at the data listed by the ACPI subsystem on
this tablet:

$ ls /sys/bus/acpi/devices/BCM* -d1
/sys/bus/acpi/devices/BCM2E3C:00
/sys/bus/acpi/devices/BCM2E55:00

Neither of these 2 IDs (BCM2E3C, BCM2E55) is listed in hci_bcm.c. It's
just a guess at this stage but could one of these be the missing
element required in hci_bcm.c to initialize Bluetooth on the Lenovo
ThinkPad 8 Tablet maybe? I don't know if the following commands might
give a hint to filter between the two IDs:

$ cat /sys/bus/acpi/devices/BCM2E3C\:00/status
0
$ cat /sys/bus/acpi/devices/BCM2E55\:00/status
15

If I can provide more information that would be useful for you, feel
free to ask as I would be glad to help.

Jérôme

P.S. I don't know if I should provide a binary firmware somehow to
trigger its initialization (as I've done for the Wi-Fi part) but I
would expect to see an error message complaining not to find the
required binary file if that was the case.

2016-02-22 10:17 GMT+01:00 Arend Van Spriel <[email protected]>:
> + Ilya
> + bt list
>
> On 21-2-2016 15:17, Jérôme de Bretagne wrote:
>> Hi,
>>
>> Since a commit from last April, the BCM4324(1) rev B5 chipset is
>> supported in the Linux kernel and WiFi networking has been working
>> like a charm on a Lenovo ThinkPad 8 tablet (running Linux
>> 4.3.0-1-amd64 from Debian). A big "Thanks" for that.
>>
>> On the other hand, the Bluetooth part doesn't show up at all (empty
>> result with hciconfig) and doesn't seem active with that same 4.3
>> kernel. I don't even see any error message in dmesg about Bluetooth.
>>
>> bluetooth/btbcm.c mentions quite a few chipsets (UART/USB) but not the
>> 4324 rev B5 so I'm not sure of the current Bluetooth status for that
>> specific one. Is this chipset enabled for Bluetooth starting with
>> Linux 4.4 or in the coming 4.5 version maybe? I couldn't check 4.4
>> properly yet as this kernel version locks currently on my tablet (for
>> other reasons).
>>
>> If it is not fully supported yet, feel free to ask any info that could
>> help enable Bluetooth for this chipset on the ThinkPad 8 tablet!
>>
>> Thanks,
>>
>> Jérôme
>>
>>
>> P.S. I guess the following page
>> https://wireless.wiki.kernel.org/en/users/Drivers/brcm80211 could be
>> updated to show that Wireless LAN is properly working.
>

2016-02-28 17:56:49

by Jérôme de Bretagne

[permalink] [raw]
Subject: Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ?

Hi,

I've been able to continue my investigation and I can confirm that I am
getting the same results on both Linux kernel:
- 4.4 - linux-image-4.4.0-1-amd64 from Debian (v4.4.2-3)
- 4.5 rc4 - linux-image-4.5.0-rc4-amd64 from Debian (4.5~rc4-1~exp1)
and in both cases no error message whatsoever related to Bluetooth.

It seems this BCM4324(1) rev B5 chipset is not initialized from a Bluetooth
point of view, while working great for Wi-Fi.

I've seen recent patches adding support for some devices simply by adding
their respective ACPI ID in hci_bcm.c (BCM2E7C for MacBook 2015, BCM2E65
for the Asus T100TAF, BCM2E54 for the HP Omni 10) so I've just taken a look
at the data listed by the ACPI subsystem on this tablet:

$ ls /sys/bus/acpi/devices/BCM* -d1
/sys/bus/acpi/devices/BCM2E3C:00
/sys/bus/acpi/devices/BCM2E55:00

Neither of these 2 IDs (BCM2E3C, BCM2E55) is listed in hci_bcm.c. It's just
a guess at this stage but could one of these be the missing element
required in hci_bcm.c to initialize Bluetooth on the Lenovo ThinkPad 8
Tablet maybe? I don't know if the following commands might give a hint to
filter between the two IDs:

$ cat /sys/bus/acpi/devices/BCM2E3C\:00/status
0
$ cat /sys/bus/acpi/devices/BCM2E55\:00/status
15

If I can provide more information that would be useful for you, feel free
to ask as I would be glad to help.

Jérôme

P.S. I don't know if I should provide a binary firmware somehow to trigger
its initialization (as I've done for the Wi-Fi part) but I would expect to
see an error message complaining not to find the required binary file if
that was the case.


2016-02-22 10:17 GMT+01:00 Arend Van Spriel <[email protected]>:

> + Ilya
> + bt list
>
> On 21-2-2016 15:17, Jérôme de Bretagne wrote:
> > Hi,https://mail.google.com/mail/u/0/#inbox/1530430f49b01795
> >
> > Since a commit from last April, the BCM4324(1) rev B5 chipset is
> > supported in the Linux kernel and WiFi networking has been working
> > like a charm on a Lenovo ThinkPad 8 tablet (running Linux
> > 4.3.0-1-amd64 from Debian). A big "Thanks" for that.
> >
> > On the other hand, the Bluetooth part doesn't show up at all (empty
> > result with hciconfig) and doesn't seem active with that same 4.3
> > kernel. I don't even see any error message in dmesg about Bluetooth.
> >
> > bluetooth/btbcm.c mentions quite a few chipsets (UART/USB) but not the
> > 4324 rev B5 so I'm not sure of the current Bluetooth status for that
> > specific one. Is this chipset enabled for Bluetooth starting with
> > Linux 4.4 or in the coming 4.5 version maybe? I couldn't check 4.4
> > properly yet as this kernel version locks currently on my tablet (for
> > other reasons).
> >
> > If it is not fully supported yet, feel free to ask any info that could
> > help enable Bluetooth for this chipset on the ThinkPad 8 tablet!
> >
> > Thanks,
> >
> > Jérôme
> >
> >
> > P.S. I guess the following page
> > https://wireless.wiki.kernel.org/en/users/Drivers/brcm80211 could be
> > updated to show that Wireless LAN is properly working.
>
>