Bug in the b43 driver (BCM4311 on Ubuntu 3.11.0-13-generic)?

Larry Finger Larry.Finger at lwfinger.net
Wed Nov 27 15:32:46 EST 2013


On 11/27/2013 09:21 AM, Christoph Rüßler wrote:
> Hello,
>
> I have a Broadcom BCM4311 wifi card and I'm using the b43 kernel driver with it
> (Ubuntu 3.11.0-13-generic). Unfortunately my system seems to have problems
> loading the driver correctly at boot time. In most cases it does not properly
> load the driver on boot making it necessary to use the radio killswitch to
> manually stop and restart the wifi which then works perfectly and without any
> further disruptions.
>
> The bug is not reproducible in a way that that I am not able to predict if it
> will happen after the next boot. I am also not able to reproduce it once I
> have successfully enabled the wifi after a failed boot. Since I only started
> using the b43 driver with the kernel I'm still using I do not know if it would
> have worked with previous kernels which were using the Broadcom driver.
>
> The only hint I have so far found in debugging is a small difference in the
> dmesg output between working and non-working boot sequences. When the wifi
> fails to start dmesg contains the following lines:
>> [   16.169637] b43-phy0: Broadcom 4311 WLAN found (core revision 13)
> […]
>> [   16.217018] b43-phy0: Found PHY: Analog 4, Type 2 (G), Revision 9
> […]
>> [   16.246721] Broadcom 43xx driver loaded [ Features: PNL ]
>
> Using the radio killswitch under these circumstances yields the following
> output:
>> [  496.421727] pci 0000:30:00.0: [14e4:4312] type 00 class 0x028000
>> [  496.421782] pci 0000:30:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
>> [  496.421930] pci 0000:30:00.0: supports D1 D2
>> [  496.422004] pci 0000:30:00.0: System wakeup disabled by ACPI
>> [  496.428993] pci 0000:30:00.0: BAR 0: assigned [mem 0xc8000000-0xc8003fff
> 64bit]
>> [  496.577397] b43-pci-bridge 0000:30:00.0: enabling device (0000 -> 0002)
>> [  496.596096] ssb: Found chip with id 0x4311, rev 0x02 and package 0x00
>> [  496.596111] ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x13, vendor
> 0x4243)
>> [  496.596123] ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x0D, vendor
> 0x4243)
>> [  496.596136] ssb: Core 2 found: USB 1.1 Host (cc 0x817, rev 0x04, vendor
> 0x4243)
>> [  496.596148] ssb: Core 3 found: PCI-E (cc 0x820, rev 0x05, vendor 0x4243)
>> [  496.660259] b43-phy1: Broadcom 4311 WLAN found (core revision 13)
>> [  496.704083] b43-phy1: Found PHY: Analog 4, Type 2 (G), Revision 9
>> [  496.728352] ssb: Sonics Silicon Backplane found on PCI device
> 0000:30:00.0
>> [  496.729194] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
>> [  496.972075] b43-phy1: Loading firmware version 666.2 (2011-02-23 01:15:07)
>
> When everything is working as expected I can find the following in the dmesg
> output:
>> [   16.115666] b43-phy0: Broadcom 4311 WLAN found (core revision 13)
> […]
>> [   16.160089] b43-phy0: Found PHY: Analog 4, Type 2 (G), Revision 9
> […]
>> [   16.184214] Broadcom 43xx driver loaded [ Features: PNL ]
> […]
>> [   24.738141] pci 0000:30:00.0: [14e4:4312] type 00 class 0x028000
>> [   24.738203] pci 0000:30:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
>> [   24.738350] pci 0000:30:00.0: supports D1 D2
>> [   24.738425] pci 0000:30:00.0: System wakeup disabled by ACPI
>> [   24.755897] pci 0000:30:00.0: BAR 0: assigned [mem 0xc8000000-0xc8003fff
> 64bit]
>> [   24.809549] b43-pci-bridge 0000:30:00.0: enabling device (0000 -> 0002)
>> [   24.896511] ssb: Found chip with id 0x4311, rev 0x02 and package 0x00
>> [   24.896538] ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x13, vendor
> 0x4243)
>> [   24.896551] ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x0D, vendor
> 0x4243)
>> [   24.896563] ssb: Core 2 found: USB 1.1 Host (cc 0x817, rev 0x04, vendor
> 0x4243)
>> [   24.896574] ssb: Core 3 found: PCI-E (cc 0x820, rev 0x05, vendor 0x4243)
>> [   24.960281] b43-phy1: Broadcom 4311 WLAN found (core revision 13)
>> [   25.004095] b43-phy1: Found PHY: Analog 4, Type 2 (G), Revision 9
>> [   25.028328] ssb: Sonics Silicon Backplane found on PCI device
> 0000:30:00.0
>> [   25.029050] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
>> [   25.236092] b43-phy1: Loading firmware version 666.2 (2011-02-23 01:15:07)
>
> Am I right in suspecting that this may be a bug in the driver? What can I do
> in order to help debugging? And if it's not a bug in the driver what could be
> the reason for this behaviour?

I do not see this problem with b43 on my BCM4311. What is probably different is 
that I use openSUSE (12.2, 12.3, and 13.1) with NetworkManager. I suspect that 
you are getting a timing error between the initial attempt to bring the 
interface up, and the availability of the user-space code needed to load the 
firmware.

Larry





More information about the b43-dev mailing list