2011-01-06 20:07:53

by Larry Finger

[permalink] [raw]
Subject: Odd behavior of ssb, b43, b43legacy, and b44

Michael,

On one of my boxes, I have installed two PCI-format BCM43xx cards for testing.
One is a BCM4306 Rev. 3, which uses b43. The other is a BCM4303, which uses
b43legacy. The output of lspci -nn for these devices is

01:09.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g
Wireless LAN Controller [14e4:4320] (rev 03)
01:0a.0 Network controller [0280]: Broadcom Corporation BCM4303 802.11b Wireless
LAN Controller [14e4:4301] (rev 02)

Upon booting, I noticed the following messages in the log:

b44: b44.c:v2.0
b44: Invalid MAC address found in EEPROM
b44 ssb1:1: Problem fetching invariants of chip, aborting

b44: probe of ssb1:1 failed with error -22

As this box does not have a b44 installed, I wondered why this was happening.
When I unloaded all the drivers and used modprobe to load ssb, I found that b43,
b43legacy and b44 were all loaded. The console output is

finger@pam:~> lsmod | grep b4 <== none loaded
finger@pam:~> sudo modprobe -v ssb <== load ssb
insmod /lib/modules/2.6.37-wl+/kernel/drivers/ssb/ssb.ko

The above looks normal, but look at what is now resident!

finger@pam:~> lsmod | grep b4
b43legacy 115302 0
b44 28767 0
b43 174321 0
ssb 38157 3 b43legacy,b44,b43
mac80211 266240 2 b43legacy,b43
cfg80211 161930 3 b43legacy,b43,mac80211

Any idea why loading ssb should silently load b43legacy AND b44? Any ideas on
where to look?

Thanks,

Larry


2011-01-07 04:31:02

by Larry Finger

[permalink] [raw]
Subject: Re: Odd behavior of ssb, b43, b43legacy, and b44

On 01/06/2011 09:34 PM, Michael Büsch wrote:
>
> Does one of these wireless cards have a dangling ethernet core? I would
> not be surprised...

Yes. The core scan for the BCM4303 is as follows:

ssb: Core 0 found: IEEE 802.11 (cc 0x812, rev 0x02, vendor 0x4243)
ssb: Core 1 found: PCMCIA (cc 0x80D, rev 0x00, vendor 0x4243)
ssb: Core 2 found: Fast Ethernet (cc 0x806, rev 0x02, vendor 0x4243)
ssb: Core 3 found: V90 (cc 0x807, rev 0x01, vendor 0x4243)
ssb: Core 4 found: PCI (cc 0x804, rev 0x03, vendor 0x4243)
ssb: Sonics Silicon Backplane found on PCI device 0000:01:09.0

Larry

2011-01-07 18:03:14

by Larry Finger

[permalink] [raw]
Subject: Re: Odd behavior of ssb, b43, b43legacy, and b44

On 01/07/2011 08:45 AM, Michael Büsch wrote:
> On Thu, 2011-01-06 at 22:31 -0600, Larry Finger wrote:
>> On 01/06/2011 09:34 PM, Michael Büsch wrote:
>>>
>>> Does one of these wireless cards have a dangling ethernet core? I would
>>> not be surprised...
>>
>> Yes. The core scan for the BCM4303 is as follows:
>>
>> ssb: Core 0 found: IEEE 802.11 (cc 0x812, rev 0x02, vendor 0x4243)
>> ssb: Core 1 found: PCMCIA (cc 0x80D, rev 0x00, vendor 0x4243)
>> ssb: Core 2 found: Fast Ethernet (cc 0x806, rev 0x02, vendor 0x4243)
>> ssb: Core 3 found: V90 (cc 0x807, rev 0x01, vendor 0x4243)
>> ssb: Core 4 found: PCI (cc 0x804, rev 0x03, vendor 0x4243)
>> ssb: Sonics Silicon Backplane found on PCI device 0000:01:09.0
>>
>> Larry
>>
>
> Can you please try this patch?
>
>
> Index: linux-2.6.37/drivers/ssb/scan.c
> ===================================================================
> --- linux-2.6.37.orig/drivers/ssb/scan.c 2011-01-07 15:35:10.518000002 +0100
> +++ linux-2.6.37/drivers/ssb/scan.c 2011-01-07 15:45:54.231998930 +0100
> @@ -420,6 +420,16 @@
> bus->pcicore.dev = dev;
> #endif /* CONFIG_SSB_DRIVER_PCICORE */
> break;
> + case SSB_DEV_ETHERNET:
> + if (bus->bustype == SSB_BUSTYPE_PCI) {
> + if (bus->host_pci->vendor == PCI_VENDOR_ID_BROADCOM &&
> + (bus->host_pci->device & 0xFF00) == 0x4300) {
> + /* This is a dangling ethernet core on a
> + * wireless device. Ignore it. */
> + continue;
> + }
> + }
> + break;
> default:
> break;
> }
>
>

That patch fixes the problem. Thanks.

Larry


2011-01-07 03:34:57

by Michael Büsch

[permalink] [raw]
Subject: Re: Odd behavior of ssb, b43, b43legacy, and b44

On Thu, 2011-01-06 at 14:07 -0600, Larry Finger wrote:
> Michael,
>
> On one of my boxes, I have installed two PCI-format BCM43xx cards for testing.
> One is a BCM4306 Rev. 3, which uses b43. The other is a BCM4303, which uses
> b43legacy. The output of lspci -nn for these devices is
>
> 01:09.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g
> Wireless LAN Controller [14e4:4320] (rev 03)
> 01:0a.0 Network controller [0280]: Broadcom Corporation BCM4303 802.11b Wireless
> LAN Controller [14e4:4301] (rev 02)
>
> Upon booting, I noticed the following messages in the log:
>
> b44: b44.c:v2.0
> b44: Invalid MAC address found in EEPROM
> b44 ssb1:1: Problem fetching invariants of chip, aborting
>
> b44: probe of ssb1:1 failed with error -22
>
> As this box does not have a b44 installed, I wondered why this was happening.
> When I unloaded all the drivers and used modprobe to load ssb, I found that b43,
> b43legacy and b44 were all loaded. The console output is
>
> finger@pam:~> lsmod | grep b4 <== none loaded
> finger@pam:~> sudo modprobe -v ssb <== load ssb
> insmod /lib/modules/2.6.37-wl+/kernel/drivers/ssb/ssb.ko
>
> The above looks normal, but look at what is now resident!
>
> finger@pam:~> lsmod | grep b4
> b43legacy 115302 0
> b44 28767 0
> b43 174321 0
> ssb 38157 3 b43legacy,b44,b43
> mac80211 266240 2 b43legacy,b43
> cfg80211 161930 3 b43legacy,b43,mac80211
>
> Any idea why loading ssb should silently load b43legacy AND b44? Any ideas on
> where to look?
>
> Thanks,
>
> Larry
>

Does one of these wireless cards have a dangling ethernet core? I would
not be surprised...

--
Greetings Michael.


2011-01-07 14:46:04

by Michael Büsch

[permalink] [raw]
Subject: Re: Odd behavior of ssb, b43, b43legacy, and b44

On Thu, 2011-01-06 at 22:31 -0600, Larry Finger wrote:
> On 01/06/2011 09:34 PM, Michael Büsch wrote:
> >
> > Does one of these wireless cards have a dangling ethernet core? I would
> > not be surprised...
>
> Yes. The core scan for the BCM4303 is as follows:
>
> ssb: Core 0 found: IEEE 802.11 (cc 0x812, rev 0x02, vendor 0x4243)
> ssb: Core 1 found: PCMCIA (cc 0x80D, rev 0x00, vendor 0x4243)
> ssb: Core 2 found: Fast Ethernet (cc 0x806, rev 0x02, vendor 0x4243)
> ssb: Core 3 found: V90 (cc 0x807, rev 0x01, vendor 0x4243)
> ssb: Core 4 found: PCI (cc 0x804, rev 0x03, vendor 0x4243)
> ssb: Sonics Silicon Backplane found on PCI device 0000:01:09.0
>
> Larry
>

Can you please try this patch?


Index: linux-2.6.37/drivers/ssb/scan.c
===================================================================
--- linux-2.6.37.orig/drivers/ssb/scan.c 2011-01-07 15:35:10.518000002 +0100
+++ linux-2.6.37/drivers/ssb/scan.c 2011-01-07 15:45:54.231998930 +0100
@@ -420,6 +420,16 @@
bus->pcicore.dev = dev;
#endif /* CONFIG_SSB_DRIVER_PCICORE */
break;
+ case SSB_DEV_ETHERNET:
+ if (bus->bustype == SSB_BUSTYPE_PCI) {
+ if (bus->host_pci->vendor == PCI_VENDOR_ID_BROADCOM &&
+ (bus->host_pci->device & 0xFF00) == 0x4300) {
+ /* This is a dangling ethernet core on a
+ * wireless device. Ignore it. */
+ continue;
+ }
+ }
+ break;
default:
break;
}


--
Greetings Michael.