2015-08-12 17:38:33

by Richards, Sean

[permalink] [raw]
Subject: Wireless driver issue

https://bugzilla.redhat.com/show_bug.cgi?id=1239050

Here is some of the information I copied from bugzilla


Product version: Lenovo Yoga 3 Pro-1370
Vendor: Lenovo

# rfkill list
0: ideapad_wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
1: ideapad_bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
3: hci0: Bluetooth
Soft blocked: no
Hard blocked: no

# lspci
01:00.0 Network controller: Broadcom Corportion BCM4352 801.11ac Wireless Netwrok Adapter (Rev 03)

#cat dmesg.log

[ 7.829696] intel_rapl: Found RAPL domain package
[ 7.829700] intel_rapl: Found RAPL domain core
[ 7.829703] intel_rapl: Found RAPL domain dram
[ 7.860817] b43-phy0: Broadcom 4352 WLAN found (core revision 42)
[ 7.884409] bcma: bus0: HT force timeout
[ 8.034006] bcma: bus0: PLL enable timeout
[ 8.034053] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 12, Type 11 (AC), Revision 1)
[ 8.034066] b43: probe of bcma0:1 failed with error -95
[ 8.034085] Broadcom 43xx driver loaded [ Features: PMNLS ]
[ 8.801760] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 8.801764] Bluetooth: BNEP filters: protocol multicast
[ 8.801768] Bluetooth: BNEP socket layer initialized
[ 8.972838] nf_conntrack version 0.5.0 (65536 buckets, 262144 max)

# lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Broadwell-U Host Bridge -OPI [8086:1604] (rev 08)
00:02.0 VGA compatible controller [0300]: Intel Corporation Broadwell-U Integrated Graphics [8086:161e] (rev 08)
00:03.0 Audio device [0403]: Intel Corporation Broadwell-U Audio Controller [8086:160c] (rev 08)
00:04.0 Signal processing controller [1180]: Intel Corporation Broadwell-U Camarillo Device [8086:1603] (rev 08)
00:14.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB xHCI Controller [8086:9cb1] (rev 03)
00:16.0 Communication controller [0780]: Intel Corporation Wildcat Point-LP MEI Controller #1 [8086:9cba] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation Wildcat Point-LP High Definition Audio Controller [8086:9ca0] (rev 03)
00:1c.0 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #3 [8086:9c94] (rev e3)
00:1f.0 ISA bridge [0601]: Intel Corporation Wildcat Point-LP LPC Controller [8086:9cc7] (rev 03)
00:1f.2 SATA controller [0106]: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] [8086:9c83] (rev 03)
00:1f.3 SMBus [0c05]: Intel Corporation Wildcat Point-LP SMBus Controller [8086:9ca2] (rev 03)
00:1f.6 Signal processing controller [1180]: Intel Corporation Wildcat Point-LP Thermal Management Controller [8086:9ca4] (rev 03)
01:00.0 Network controller [0280]: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)


Sean Richards
Accelera | GPO Contractor
Citrix | VMware | M.S.
Ext. 20306



2015-08-12 17:58:19

by Larry Finger

[permalink] [raw]
Subject: Re: Wireless driver issue

On 08/12/2015 12:05 PM, Richards, Sean wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1239050
>
> Here is some of the information I copied from bugzilla
>
>
> Product version: Lenovo Yoga 3 Pro-1370
> Vendor: Lenovo
>
> # rfkill list
> 0: ideapad_wlan: Wireless LAN
> Soft blocked: no
> Hard blocked: no
> 1: ideapad_bluetooth: Bluetooth
> Soft blocked: no
> Hard blocked: no
> 3: hci0: Bluetooth
> Soft blocked: no
> Hard blocked: no
>
> # lspci
> 01:00.0 Network controller: Broadcom Corportion BCM4352 801.11ac Wireless Netwrok Adapter (Rev 03)
>
> #cat dmesg.log
>
> [ 7.829696] intel_rapl: Found RAPL domain package
> [ 7.829700] intel_rapl: Found RAPL domain core
> [ 7.829703] intel_rapl: Found RAPL domain dram
> [ 7.860817] b43-phy0: Broadcom 4352 WLAN found (core revision 42)
> [ 7.884409] bcma: bus0: HT force timeout
> [ 8.034006] bcma: bus0: PLL enable timeout
> [ 8.034053] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 12, Type 11 (AC), Revision 1)
> [ 8.034066] b43: probe of bcma0:1 failed with error -95
> [ 8.034085] Broadcom 43xx driver loaded [ Features: PMNLS ]
> [ 8.801760] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
> [ 8.801764] Bluetooth: BNEP filters: protocol multicast
> [ 8.801768] Bluetooth: BNEP socket layer initialized
> [ 8.972838] nf_conntrack version 0.5.0 (65536 buckets, 262144 max)
>
> # lspci -nn
> 00:00.0 Host bridge [0600]: Intel Corporation Broadwell-U Host Bridge -OPI [8086:1604] (rev 08)
> 00:02.0 VGA compatible controller [0300]: Intel Corporation Broadwell-U Integrated Graphics [8086:161e] (rev 08)
> 00:03.0 Audio device [0403]: Intel Corporation Broadwell-U Audio Controller [8086:160c] (rev 08)
> 00:04.0 Signal processing controller [1180]: Intel Corporation Broadwell-U Camarillo Device [8086:1603] (rev 08)
> 00:14.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB xHCI Controller [8086:9cb1] (rev 03)
> 00:16.0 Communication controller [0780]: Intel Corporation Wildcat Point-LP MEI Controller #1 [8086:9cba] (rev 03)
> 00:1b.0 Audio device [0403]: Intel Corporation Wildcat Point-LP High Definition Audio Controller [8086:9ca0] (rev 03)
> 00:1c.0 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #3 [8086:9c94] (rev e3)
> 00:1f.0 ISA bridge [0601]: Intel Corporation Wildcat Point-LP LPC Controller [8086:9cc7] (rev 03)
> 00:1f.2 SATA controller [0106]: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] [8086:9c83] (rev 03)
> 00:1f.3 SMBus [0c05]: Intel Corporation Wildcat Point-LP SMBus Controller [8086:9ca2] (rev 03)
> 00:1f.6 Signal processing controller [1180]: Intel Corporation Wildcat Point-LP Thermal Management Controller [8086:9ca4] (rev 03)
> 01:00.0 Network controller [0280]: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)
>
>
> Sean Richards
> Accelera | GPO Contractor
> Citrix | VMware | M.S.
> Ext. 20306

I would think that "> [ 8.034053] b43-phy0 ERROR: FOUND UNSUPPORTED PHY
(Analog 12, Type 11 (AC), Revision 1)" would be self explanatory. Obviously, b43
does not support that device, and I doubt that it ever will. Reverse engineering
802.11g was difficult, 802.11n was much harder, and I suspect that 802.11ac
would be impossible.

Your only option is to use the Broadcom hybrid (proprietary) driver. It will
taint your kernel, and we do not support it here, but it is your only choice.

Larry




2015-08-12 20:51:12

by Sean Richards

[permalink] [raw]
Subject: Re: Wireless driver issue

On Aug 12, 2015, at 4:42 PM, Larry Finger <[email protected]> wrote:
>
>> On 08/12/2015 02:15 PM, Richards, Sean wrote:
>> No I am sorry it's not obvious. I was told to report the bug to you. I did so. I honestly don't know much about Linux. I like using it and reported the bug to help the community. I am sure I won't be the only one to purchase this device and Put RedHat / Fedora on it.
>
> Since you are new, I will offer a little tutorial.
>
> Firstly, it is better if you do not post your response before the quoted material - called top posting.
>
> A. It puts the answer out of order and before the question.
> Q. Why is top posting bad?
>
> The person that told you to report this problem to us did not know what they were saying. This mailing list is for open-source drivers. As I said in the first E-mail, and as I will explain a little more fully here, your device has no open-source driver available.
>
> A third point is that when you will be posting the output from lspci, always include the "-nn" switch in the command. That way the PCI IDs will be listed. Those are the codes used by the system to recognize what driver the device will use. There is always a possibility that the BCMXXXX designation may be misleading.
>
> There are three sources of drivers for Broadcom wireless devices:
>
> 1. Driver b43 is open source and mostly covers older devices. It has been written by the community based on clean-room reverse engineering. As stated earlier, the more complicated the wireless technology, the more difficult the reverse process.
>
> 2. Drivers brcmsmac and brcmfmac are open source and cover newer devices. These drivers have been written by Broadcom employees, thus they have access to the details of the internals of the wireless chips; however, not all new devices are supported.
>
> 3. Driver wl, which is partly closed source, has been written by a different set of Broadcom developers. It is a hybrid driver with two parts. The first is open-source code that handles the interfacing between the wireless chip control routines and the rest of Linux. The second part, which handles the actual operation of the wireless chip, is only provided as a binary blob. The probable reason for hiding this code is to preserve the "secrets" of the chips.
>
> The list of what drivers are available for the various devices is available at https://wireless.wiki.kernel.org/en/users/Drivers/b43. As shown there, driver wl is the only option for your device.
>
> Larry

I was wondering if you could answer one more question for me. Would you mind expanding on this comment??

It will taint your kernel

I am curious what you mean by that.

2015-08-12 19:15:33

by Richards, Sean

[permalink] [raw]
Subject: RE: Wireless driver issue

No I am sorry it's not obvious. I was told to report the bug to you. I did so. I honestly don't know much about Linux. I like using it and reported the bug to help the community. I am sure I won't be the only one to purchase this device and Put RedHat / Fedora on it.

Sean Richards

-----Original Message-----
From: Larry Finger [mailto:[email protected]] On Behalf Of Larry Finger
Sent: Wednesday, August 12, 2015 1:57 PM
To: Richards, Sean; [email protected]
Cc: [email protected]
Subject: Re: Wireless driver issue

On 08/12/2015 12:05 PM, Richards, Sean wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1239050
>
> Here is some of the information I copied from bugzilla
>
>
> Product version: Lenovo Yoga 3 Pro-1370
> Vendor: Lenovo
>
> # rfkill list
> 0: ideapad_wlan: Wireless LAN
> Soft blocked: no
> Hard blocked: no
> 1: ideapad_bluetooth: Bluetooth
> Soft blocked: no
> Hard blocked: no
> 3: hci0: Bluetooth
> Soft blocked: no
> Hard blocked: no
>
> # lspci
> 01:00.0 Network controller: Broadcom Corportion BCM4352 801.11ac
> Wireless Netwrok Adapter (Rev 03)
>
> #cat dmesg.log
>
> [ 7.829696] intel_rapl: Found RAPL domain package
> [ 7.829700] intel_rapl: Found RAPL domain core
> [ 7.829703] intel_rapl: Found RAPL domain dram
> [ 7.860817] b43-phy0: Broadcom 4352 WLAN found (core revision 42)
> [ 7.884409] bcma: bus0: HT force timeout
> [ 8.034006] bcma: bus0: PLL enable timeout
> [ 8.034053] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 12, Type 11 (AC), Revision 1)
> [ 8.034066] b43: probe of bcma0:1 failed with error -95
> [ 8.034085] Broadcom 43xx driver loaded [ Features: PMNLS ]
> [ 8.801760] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
> [ 8.801764] Bluetooth: BNEP filters: protocol multicast
> [ 8.801768] Bluetooth: BNEP socket layer initialized
> [ 8.972838] nf_conntrack version 0.5.0 (65536 buckets, 262144 max)
>
> # lspci -nn
> 00:00.0 Host bridge [0600]: Intel Corporation Broadwell-U Host Bridge
> -OPI [8086:1604] (rev 08)
> 00:02.0 VGA compatible controller [0300]: Intel Corporation
> Broadwell-U Integrated Graphics [8086:161e] (rev 08)
> 00:03.0 Audio device [0403]: Intel Corporation Broadwell-U Audio
> Controller [8086:160c] (rev 08)
> 00:04.0 Signal processing controller [1180]: Intel Corporation
> Broadwell-U Camarillo Device [8086:1603] (rev 08)
> 00:14.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB
> xHCI Controller [8086:9cb1] (rev 03)
> 00:16.0 Communication controller [0780]: Intel Corporation Wildcat
> Point-LP MEI Controller #1 [8086:9cba] (rev 03)
> 00:1b.0 Audio device [0403]: Intel Corporation Wildcat Point-LP High
> Definition Audio Controller [8086:9ca0] (rev 03)
> 00:1c.0 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI
> Express Root Port #3 [8086:9c94] (rev e3)
> 00:1f.0 ISA bridge [0601]: Intel Corporation Wildcat Point-LP LPC
> Controller [8086:9cc7] (rev 03)
> 00:1f.2 SATA controller [0106]: Intel Corporation Wildcat Point-LP
> SATA Controller [AHCI Mode] [8086:9c83] (rev 03)
> 00:1f.3 SMBus [0c05]: Intel Corporation Wildcat Point-LP SMBus
> Controller [8086:9ca2] (rev 03)
> 00:1f.6 Signal processing controller [1180]: Intel Corporation Wildcat
> Point-LP Thermal Management Controller [8086:9ca4] (rev 03)
> 01:00.0 Network controller [0280]: Broadcom Corporation BCM4352
> 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)
>
>
> Sean Richards
> Accelera | GPO Contractor
> Citrix | VMware | M.S.
> Ext. 20306

I would think that "> [ 8.034053] b43-phy0 ERROR: FOUND UNSUPPORTED PHY
(Analog 12, Type 11 (AC), Revision 1)" would be self explanatory. Obviously, b43 does not support that device, and I doubt that it ever will. Reverse engineering 802.11g was difficult, 802.11n was much harder, and I suspect that 802.11ac would be impossible.

Your only option is to use the Broadcom hybrid (proprietary) driver. It will taint your kernel, and we do not support it here, but it is your only choice.

Larry




2015-08-12 22:02:21

by Larry Finger

[permalink] [raw]
Subject: Re: Wireless driver issue

On 08/12/2015 03:51 PM, Sean Richards wrote:
>
> I was wondering if you could answer one more question for me. Would you mind expanding on this comment??
>
> It will taint your kernel
>
> I am curious what you mean by that.

When you load a driver that is not open source with the corresponding GPL
license, a flag in the kernel is set in the kernel. If a kernel oops is later
triggered, the dump shows that the kernel is so tainted. No kernel developer
will look at that report until you reproduce it without loading the offending
driver.

Larry



2015-08-12 22:14:58

by Arend van Spriel

[permalink] [raw]
Subject: Re: Wireless driver issue

On 08/12/2015 10:51 PM, Sean Richards wrote:
> On Aug 12, 2015, at 4:42 PM, Larry Finger <[email protected]> wrote:
>>
>>> On 08/12/2015 02:15 PM, Richards, Sean wrote:
>>> No I am sorry it's not obvious. I was told to report the bug to you. I did so. I honestly don't know much about Linux. I like using it and reported the bug to help the community. I am sure I won't be the only one to purchase this device and Put RedHat / Fedora on it.
>>
>> Since you are new, I will offer a little tutorial.
>>
>> Firstly, it is better if you do not post your response before the quoted material - called top posting.
>>
>> A. It puts the answer out of order and before the question.
>> Q. Why is top posting bad?
>>
>> The person that told you to report this problem to us did not know what they were saying. This mailing list is for open-source drivers. As I said in the first E-mail, and as I will explain a little more fully here, your device has no open-source driver available.
>>
>> A third point is that when you will be posting the output from lspci, always include the "-nn" switch in the command. That way the PCI IDs will be listed. Those are the codes used by the system to recognize what driver the device will use. There is always a possibility that the BCMXXXX designation may be misleading.
>>
>> There are three sources of drivers for Broadcom wireless devices:
>>
>> 1. Driver b43 is open source and mostly covers older devices. It has been written by the community based on clean-room reverse engineering. As stated earlier, the more complicated the wireless technology, the more difficult the reverse process.

It may seem to people that b43 has a bug as it tries to probe devices it
does not support. Still I agree with Larry that the information in the
kernel log is pretty clear about what is going on.

>> 2. Drivers brcmsmac and brcmfmac are open source and cover newer devices. These drivers have been written by Broadcom employees, thus they have access to the details of the internals of the wireless chips; however, not all new devices are supported.
>>
>> 3. Driver wl, which is partly closed source, has been written by a different set of Broadcom developers. It is a hybrid driver with two parts. The first is open-source code that handles the interfacing between the wireless chip control routines and the rest of Linux. The second part, which handles the actual operation of the wireless chip, is only provided as a binary blob. The probable reason for hiding this code is to preserve the "secrets" of the chips.
>>
>> The list of what drivers are available for the various devices is available at https://wireless.wiki.kernel.org/en/users/Drivers/b43. As shown there, driver wl is the only option for your device.
>>
>> Larry
>
> I was wondering if you could answer one more question for me. Would you mind expanding on this comment??
>
> It will taint your kernel
>
> I am curious what you mean by that.--

A kernel can be tainted for various reasons specified in
include/linux/kernel.h [1]. One of them is using an out-of-tree module.
The hybrid driver is such a driver module. It is built against the
kernel, but not part of it. Certain kernel features require an untainted
kernel. So those will not be available if using the hybrid driver. Not
sure if those features are listed somewhere.

Regards,
Arend

[1]
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/kernel.h#n476

> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>


2015-08-12 20:42:55

by Larry Finger

[permalink] [raw]
Subject: Re: Wireless driver issue

On 08/12/2015 02:15 PM, Richards, Sean wrote:
> No I am sorry it's not obvious. I was told to report the bug to you. I did so. I honestly don't know much about Linux. I like using it and reported the bug to help the community. I am sure I won't be the only one to purchase this device and Put RedHat / Fedora on it.

Since you are new, I will offer a little tutorial.

Firstly, it is better if you do not post your response before the quoted
material - called top posting.

A. It puts the answer out of order and before the question.
Q. Why is top posting bad?

The person that told you to report this problem to us did not know what they
were saying. This mailing list is for open-source drivers. As I said in the
first E-mail, and as I will explain a little more fully here, your device has no
open-source driver available.

A third point is that when you will be posting the output from lspci, always
include the "-nn" switch in the command. That way the PCI IDs will be listed.
Those are the codes used by the system to recognize what driver the device will
use. There is always a possibility that the BCMXXXX designation may be misleading.

There are three sources of drivers for Broadcom wireless devices:

1. Driver b43 is open source and mostly covers older devices. It has been
written by the community based on clean-room reverse engineering. As stated
earlier, the more complicated the wireless technology, the more difficult the
reverse process.

2. Drivers brcmsmac and brcmfmac are open source and cover newer devices. These
drivers have been written by Broadcom employees, thus they have access to the
details of the internals of the wireless chips; however, not all new devices are
supported.

3. Driver wl, which is partly closed source, has been written by a different set
of Broadcom developers. It is a hybrid driver with two parts. The first is
open-source code that handles the interfacing between the wireless chip control
routines and the rest of Linux. The second part, which handles the actual
operation of the wireless chip, is only provided as a binary blob. The probable
reason for hiding this code is to preserve the "secrets" of the chips.

The list of what drivers are available for the various devices is available at
https://wireless.wiki.kernel.org/en/users/Drivers/b43. As shown there, driver wl
is the only option for your device.

Larry


2015-08-13 14:31:53

by Richards, Sean

[permalink] [raw]
Subject: RE: Wireless driver issue

-----Original Message-----
From: Arend van Spriel [mailto:[email protected]]
Sent: Wednesday, August 12, 2015 6:15 PM
To: Sean Richards; Larry Finger
Cc: Richards, Sean; [email protected]; [email protected]
Subject: Re: Wireless driver issue

On 08/12/2015 10:51 PM, Sean Richards wrote:
> On Aug 12, 2015, at 4:42 PM, Larry Finger <[email protected]> wrote:
>>
>>> On 08/12/2015 02:15 PM, Richards, Sean wrote:
>>> No I am sorry it's not obvious. I was told to report the bug to you. I did so. I honestly don't know much about Linux. I like using it and reported the bug to help the community. I am sure I won't be the only one to purchase this device and Put RedHat / Fedora on it.
>>
>> Since you are new, I will offer a little tutorial.
>>
>> Firstly, it is better if you do not post your response before the quoted material - called top posting.
>>
>> A. It puts the answer out of order and before the question.
>> Q. Why is top posting bad?
>>
>> The person that told you to report this problem to us did not know what they were saying. This mailing list is for open-source drivers. As I said in the first E-mail, and as I will explain a little more fully here, your device has no open-source driver available.
>>
>> A third point is that when you will be posting the output from lspci, always include the "-nn" switch in the command. That way the PCI IDs will be listed. Those are the codes used by the system to recognize what driver the device will use. There is always a possibility that the BCMXXXX designation may be misleading.
>>
>> There are three sources of drivers for Broadcom wireless devices:
>>
>> 1. Driver b43 is open source and mostly covers older devices. It has been written by the community based on clean-room reverse engineering. As stated earlier, the more complicated the wireless technology, the more difficult the reverse process.

It may seem to people that b43 has a bug as it tries to probe devices it does not support. Still I agree with Larry that the information in the kernel log is pretty clear about what is going on.

>> 2. Drivers brcmsmac and brcmfmac are open source and cover newer devices. These drivers have been written by Broadcom employees, thus they have access to the details of the internals of the wireless chips; however, not all new devices are supported.
>>
>> 3. Driver wl, which is partly closed source, has been written by a different set of Broadcom developers. It is a hybrid driver with two parts. The first is open-source code that handles the interfacing between the wireless chip control routines and the rest of Linux. The second part, which handles the actual operation of the wireless chip, is only provided as a binary blob. The probable reason for hiding this code is to preserve the "secrets" of the chips.
>>
>> The list of what drivers are available for the various devices is available at https://wireless.wiki.kernel.org/en/users/Drivers/b43. As shown there, driver wl is the only option for your device.
>>
>> Larry
>
> I was wondering if you could answer one more question for me. Would you mind expanding on this comment??
>
> It will taint your kernel
>
> I am curious what you mean by that.--

A kernel can be tainted for various reasons specified in include/linux/kernel.h [1]. One of them is using an out-of-tree module.
The hybrid driver is such a driver module. It is built against the kernel, but not part of it. Certain kernel features require an untainted kernel. So those will not be available if using the hybrid driver. Not sure if those features are listed somewhere.

Regards,
Arend

[1]
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/kernel.h#n476

> To unsubscribe from this list: send the line "unsubscribe
> linux-wireless" in the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

Thank you guys for helping me understand the situation. Maybe I will look into the situation and see what I can do with helping to make some open source drivers for this. I am a novice at reverse engineering and have some decent assembly experience. Thanks again for everyone's time.

Respectfully,

Sean Richards