Project

General

Profile

Actions

Bug #548

open

Lenovo X201 Fails To Recognize Upgraded WiFi Card

Added by Jeremy Brown 4 months ago. Updated about 1 month ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
07/15/2024
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Affected OS:

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

6205_lspci_tree.txt (1.63 KB) 6205_lspci_tree.txt Jeremy Brown, 07/15/2024 06:37 AM
7260_lspci_tree.txt (1.57 KB) 7260_lspci_tree.txt Jeremy Brown, 07/15/2024 06:37 AM
6205_lspci.txt (12.8 KB) 6205_lspci.txt Jeremy Brown, 07/15/2024 06:37 AM
7260_lspci.txt (12.2 KB) 7260_lspci.txt Jeremy Brown, 07/15/2024 06:37 AM
coreboot.cfg (20.1 KB) coreboot.cfg Jeremy Brown, 07/15/2024 06:43 AM
6205_root_inspection.txt (3.58 KB) 6205_root_inspection.txt Jeremy Brown, 07/16/2024 12:08 AM
7260_root_inspection.txt (3.58 KB) 7260_root_inspection.txt Jeremy Brown, 07/16/2024 12:08 AM
6205_cbmem_dump.txt (43.2 KB) 6205_cbmem_dump.txt Jeremy Brown, 07/17/2024 04:14 AM
7260_cbmem_dump.txt (42.1 KB) 7260_cbmem_dump.txt Jeremy Brown, 07/17/2024 04:15 AM
x201-gfxinit-ed2k-2408-config (10.5 KB) x201-gfxinit-ed2k-2408-config lenovo x201 working config wireless ac 7260 [8086:08b1] Walter Sonius, 10/19/2024 08:54 AM
Actions #1

Updated by Jeremy Brown 4 months ago

Actions #3

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

I've uploaded logs with both the 6205 and 7260 cards installed.

Actions #5

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?

Actions #6

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.

Actions #7

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

Actions #8

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

Actions

Also available in: Atom PDF