2022-11-24 19:57:48

by Ioannis Barkas

[permalink] [raw]
Subject: BCM4352 Broadcom support

Hello,

I have tested a hybrid laptop device which is actually a tablet(YOGA 3
Pro-1370) and has a BCM Wi-Fi.

On Ubuntu boot I get:
[ 2.294215] bcma-pci-bridge 0000:01:00.0: bus0: Found chip with id
0x4352, rev 0x03 and package 0x00
[ 2.294263] bcma-pci-bridge 0000:01:00.0: bus0: Core 0 found:
ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
[ 2.294290] bcma-pci-bridge 0000:01:00.0: bus0: Core 1 found: IEEE
802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
[ 2.294348] bcma-pci-bridge 0000:01:00.0: bus0: Core 2 found: ARM
CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
[ 2.294398] bcma-pci-bridge 0000:01:00.0: bus0: Core 3 found: PCIe
Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
[ 2.294424] bcma-pci-bridge 0000:01:00.0: bus0: Core 4 found: USB
2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
[ 2.332079] cryptd: max_cpu_qlen set to 1000
[ 2.350696] bcma: Unsupported SPROM revision: 11
[ 2.350760] bcma-pci-bridge 0000:01:00.0: bus0: Invalid SPROM read
from the PCIe card, trying to use fallback SPROM
[ 2.350764] bcma-pci-bridge 0000:01:00.0: bus0: Using fallback
SPROM failed (err -2)
[ 2.350767] bcma-pci-bridge 0000:01:00.0: bus0: No SPROM available
[ 2.353785] bcma-pci-bridge 0000:01:00.0: bus0: Bus registered
[ 34.766808] b43-phy0: Broadcom 4352 WLAN found (core revision 42)
[ 34.787320] bcma-pci-bridge 0000:01:00.0: bus0: HT force timeout
[ 34.930930] bcma-pci-bridge 0000:01:00.0: bus0: PLL enable timeout
[ 34.930980] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 12, Type
11 (AC), Revision 1)
[ 34.931036] b43: probe of bcma0:1 failed with error -95
[ 34.931136] Broadcom 43xx driver loaded [ Features: PNL ]

This is the device:
01:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries
BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)
Subsystem: Lenovo BCM4352 802.11ac Wireless Network Adapter [17aa:0623]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at c1200000 (64-bit, non-prefetchable) [size=32K]
Region 2: Memory at c1000000 (64-bit, non-prefetchable) [size=2M]
Capabilities: [48] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=2 PME-
Capabilities: [58] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [68] Vendor Specific Information: Len=44 <?>
Capabilities: [ac] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s
<4us, L1 unlimited
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10W
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr+ NoSnoop+
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit
Latency L0s <2us, L1 <32us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes, Disabled- CommClk+
ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR-
10BitTagComp- 10BitTagReq- OBFF Via WAKE#, ExtFmt- EETLPPrefix-
EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
FRS- TPHComp- ExtTPHComp-
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR-
10BitTagReq- OBFF Disabled,
AtomicOpsCtl: ReqEn-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
LnkSta2: Current De-emphasis Level: -3.5dB,
EqualizationComplete- EqualizationPhase1-
EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
Retimer- 2Retimers- CrosslinkRes: unsupported
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt-
RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn-
ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
Capabilities: [13c v0] Device Serial Number ac-d1-00-ff-**-**-**-**
Capabilities: [150 v1] Power Budgeting <?>
Capabilities: [160 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
Status: NegoPending- InProgress-
Kernel driver in use: bcma-pci-bridge
Kernel modules: bcma
00: e4 14 b1 43 06 00 10 00 03 00 80 02 10 00 00 00
10: 04 00 20 c1 00 00 00 00 04 00 00 c1 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 23 06
30: 00 00 00 00 48 00 00 00 00 00 00 00 ff 01 00 00
40: 00 00 00 00 00 00 00 00 01 58 03 fe 08 40 00 00
50: 00 00 00 00 00 00 00 00 05 68 80 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 09 ac 44 00 01 01 00 00
70: 00 10 10 18 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 10 00 18 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 40 00 05 00 10 00 02 00
b0: 81 8f 90 05 10 2c 10 00 11 dc 46 00 43 01 11 10
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 1f 00 08 00 00 00 00 00 00 00 00 00 01 00 01 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
100: 01 00 c1 13 00 00 00 00 00 00 00 00 30 20 06 00
110: 00 00 00 00 00 20 00 00 a0 00 00 00 00 00 00 00
120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
130: 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 15

As it says UNSUPPORTED PHY and 43b1 is not supported with no
alternative as can be seen[1], can this device be used? What is the
SPROM issue about?

[1]https://wireless.wiki.kernel.org/en/users/Drivers/b43