Bug #548
openLenovo X201 Fails To Recognize Upgraded WiFi Card
0%
Description
I am running coreboot 24.05 on my Lenovo X201.
I decided to upgrade my WiFi card from an Intel Centrino Advanced-N 6205 to an Intel Wireless-AC 7260; since I selected the option to support Intel PCIe cards in my build config I expected everything to work but my computer fails to recognize the new card. The old card is still recognized if I reinstall it so I know I didn't mess up the socket somehow; I've read reports of the 7260 working with a modded factory BIOS so I don't think there's an electrical issue. I've seen somewhat related bugs but it seems their issue isn't mine.
I've attached lspci data from both chips and my build config, lmk if additional information is needed.
Files
Updated by Jeremy Brown 4 months ago
- File coreboot.cfg coreboot.cfg added
- Description updated (diff)
Updated by Jeremy Brown 4 months ago
- File 6205_root_inspection.txt 6205_root_inspection.txt added
- File 7260_root_inspection.txt 7260_root_inspection.txt added
Updated by Nico Huber 4 months ago
Looks like the PCIe link is completely down. I wouldn't say it's likely with an Intel card, but it's possible that this happens when coreboot enables the link power management (assuming the link worked without pm). A coreboot log would tell us. You can fetch it from a running system with sudo cbmem -c
(if installed, if not make -C util/cbmem/ && sudo util/cbmem/cbmem -c
in the coreboot source tree).
Updated by Jeremy Brown 4 months ago
- File 6205_cbmem_dump.txt 6205_cbmem_dump.txt added
- File 7260_cbmem_dump.txt 7260_cbmem_dump.txt added
I've uploaded logs with both the 6205 and 7260 cards installed.
Updated by Jeremy Brown 3 months ago
Is there anything else I need to provide to get this bug moving? I remember one idea discussed previously was backporting later southbridge code to my board, can that still be done?
Updated by Martin Roth 3 months ago
- Subject changed from Computer Fails To Recognize Upgraded WiFi Card to Lenovo X201 Fails To Recognize Upgraded WiFi Card
This could be an issue with the power-on timing of the PCIe slots. Typically there will be GPIOs that control power, reset and wifi/bluetooth enables on the slot. The chip on the module will give specific timings that need to be met for the card to work. If the timings aren't met, the card might not initialize properly.
You can look at the connector spec to see which pin is used for what, then try enabling and disabling the GPIOs to see which controls what (Assuming they're not already set in the GPIO config).
As I recall, typically you'll power it on in the boot block, then bring it out of reset in romstage, and wifi needs to be enabled before PCI enumeration in ramstage. Bluetooth is typically USB, so it just needs to be enabled before boot.
Obviously, I can't promise that this is the problem in your case, but I've seen issues where having the wrong timings kept the card from enumerating.
Updated by Maya Matuszczyk 3 months ago
Jeremy Brown wrote:
I am running coreboot 24.05 on my Lenovo X201.
I decided to upgrade my WiFi card from an Intel Centrino Advanced-N 6205 to an Intel Wireless-AC 7260; since I selected the option to support Intel PCIe cards in my build config I expected everything to work but my computer fails to recognize the new card. The old card is still recognized if I reinstall it so I know I didn't mess up the socket somehow; I've read reports of the 7260 working with a modded factory BIOS so I don't think there's an electrical issue. I've seen somewhat related bugs but it seems their issue isn't mine.
I've attached lspci data from both chips and my build config, lmk if additional information is needed.
I'm using a miniPCIe AX210 card with coreboot on my X201 and so far it works perfectly fine with this config https://ticket.coreboot.org/attachments/460
Updated by Walter Sonius about 1 month ago ยท Edited
Works for me on X201, not sure if its the same ac-7260 adapter, have you tried the other internal mini-PCIE?
sudo dmesg | grep LENOVO
[ 0.000000] DMI: LENOVO 3680WVT/3680WVT, BIOS CBET4000 24.08-335-g920c0a604560 09/30/2024
lspci -vv
04:00.0 Network controller [0280]: Intel Corporation Wireless 7260 [8086:08b1] (rev 73)
Subsystem: Intel Corporation Dual Band Wireless-AC 7260 [Wilkins Peak 2] [8086:4070]
lspci -tvnn
-+-[0000:00]-+-00.0 Intel Corporation Core Processor DRAM Controller [8086:0044]
| +-02.0 Intel Corporation Core Processor Integrated Graphics Controller [8086:0046]
| +-16.0 Intel Corporation 5 Series/3400 Series Chipset HECI Controller [8086:3b64]
| +-19.0 Intel Corporation 82577LM Gigabit Network Connection [8086:10ea]
| +-1a.0 Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller [8086:3b3c]
| +-1b.0 Intel Corporation 5 Series/3400 Series Chipset High Definition Audio [8086:3b56]
| +-1c.0-[01]--
| +-1c.1-[02]--
| +-1c.3-[03]--
| +-1c.4-[04]----00.0 Intel Corporation Wireless 7260 [8086:08b1]
| +-1d.0 Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller [8086:3b34]
| +-1e.0-[05]--
| +-1f.0 Intel Corporation QM57 Chipset LPC Interface Controller [8086:3b07]
| +-1f.2 Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller [8086:3b2f]
| +-1f.3 Intel Corporation 5 Series/3400 Series Chipset SMBus Controller [8086:3b30]
| \-1f.6 Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem [8086:3b32]
\-[0000:ff]-+-00.0 Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers [8086:2c62]
+-00.1 Intel Corporation Core Processor QuickPath Architecture System Address Decoder [8086:2d01]
+-02.0 Intel Corporation Core Processor QPI Link 0 [8086:2d10]
+-02.1 Intel Corporation 1st Generation Core i3/5/7 Processor QPI Physical 0 [8086:2d11]
+-02.2 Intel Corporation 1st Generation Core i3/5/7 Processor Reserved [8086:2d12]
\-02.3 Intel Corporation 1st Generation Core i3/5/7 Processor Reserved [8086:2d13]
sudo lspci -vvv
04:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)
Subsystem: Intel Corporation Dual Band Wireless-AC 7260 [Wilkins Peak 2]
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 31
Region 0: Memory at fe700000 (64-bit, non-prefetchable) [size=8K]
Capabilities: [c8] 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=0 PME-
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee01004 Data: 0023
Capabilities: [40] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 unlimited
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W
DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
RlxdOrd+ ExtTag- PhantFunc- AuxPwr+ NoSnoop+ FLReset-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <4us, L1 <32us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
LnkCtl: ASPM 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 B, TimeoutDis+ NROPrPrP- LTR+
10BitTagComp- 10BitTagReq- OBFF Via WAKE#, ExtFmt- EETLPPrefix-
EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
FRS- TPHComp- ExtTPHComp-
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 16ms to 55ms, 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: [140 v1] Device Serial Number 0c-8b-fd-ff-ff-2d-59-a6
Capabilities: [14c v1] Latency Tolerance Reporting
Max snoop latency: 0ns
Max no snoop latency: 0ns
Capabilities: [154 v1] Vendor Specific Information: ID=cafe Rev=1 Len=014 <?>
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi