Page 1 of 1

M.2 wifi compatibility

Posted: Wed Feb 20, 2019 6:30 pm
by kwitiii
Hey fit-iot,

I'm experiencing an issue with my fitlet 2. I have a known working fitlet2 and fc-pci card populated with an intel 8265 wifi card. I have removed the 8265 and tried using a 9260 (tested working in another machine) and only the bluetooth component populates, no output is provided from lspci or dmesg to indicate that a wifi component is even plugged in. I'm running kernel version 4.20.8 and have the 9260 driver installed, but I would not expect those to have any bearing on the card being detected as installed. Is there a compatibility issue here?

Regards,

kwitiii

Re: M.2 wifi compatibility

Posted: Thu Feb 21, 2019 3:44 pm
by tamir
We haven't tested the Intel 9260AC, but we have heard from customers that the following might work:

The cause of this issue is probably due to the inability to choose the right PCI interface speed
• PCI setting for Gen2 and De-emphasis in BIOS

Some platforms experience difficulties enumerating the Wi-Fi device after warm boot. The cause of this issue is the ability to choose the right PCI interface speed (Gen1/2). A fix for this issue is to disable the PCI De-emphasis option in the BIOS and set speed to Gen2.

1. De-emphasis disabled.
2. Speed – AUTO (to allow Gen2 speed).

Re: M.2 wifi compatibility

Posted: Mon Jul 01, 2019 5:23 pm
by jeffdivert
Thank you tamir! I can confirm in my fitlet2 CE3930 that disabling the de-emphasis option of the BIOS has allowed my Intel 9260AC wifi/BT module to properly initialize during boot, whereas only BT would work properly before the change. I found the setting(s) buried in the BIOS under Chipset>South Cluster Configuration>PCI Express Configuration>PCI Express Root Port 3>PCIe Selectable De-emphasis>Disable in order to get the wifi to properly initialize under Ubuntu 18.04.1 LTS which apparently is running a kernel with the proper iwlwifi drivers from Intel to work with the Intel 9XXX wifi/BT modules.

The speed was already set to Auto in my case so I did not need to make any changes there. I confirmed that PCI Express Root Port 3 was the only one that needed to have the de-emphasis setting changed in my case with the Intel wifi module installed in the FC CEM fitlet card in the M.2 E key socket as recommended by the installation instructions: http://www.fit-pc.com/wiki/index.php?ti ... structions

Hope this will help someone else looking to integrate one of the newer Intel wifi/BT modules in a fitlet2.

Now I just wait for BlueZ to add better support for Bluetooth 5 features like LE coded PHY and I'll be in great shape!

Jeff

Re: M.2 wifi compatibility

Posted: Sun Jul 14, 2019 10:39 am
by tamir
Good news, glad this worked out well for you.

Re: M.2 wifi compatibility

Posted: Wed Feb 05, 2020 2:32 pm
by TomT
tamir wrote:The cause of this issue is the ability to choose the right PCI interface speed (Gen1/2). A fix for this issue is to disable the PCI De-emphasis option in the BIOS and set speed to Gen2.

1. De-emphasis disabled.
2. Speed – AUTO (to allow Gen2 speed).
For my CJ3455 with an FC-CEM and Intel 9260, this workaround was not sufficient for stability. The fitlet could detect the 9260, setting it to Gen2 speed (confirmed with lspci -vv -s 01:00), but it fails over time with various PCIe commands timing out.

I believe the issue is signal integrity, especially through the two connectors routing to the FC-CEM. An Intel 8260 (a PCIe Gen1 device) works just fine.

My workaround is to set the Speed to Gen1, leaving BIOS de-emphasis setting at the default. The 9260 is detected and runs stably. The reduced speed is really not a problem, since the #3 root port is not shared, and gets roughly 2000Mbit/s, adequate for the AC1750 max rate of the device.

See LinkCap, LnkSta and LnkSta2 in the stable configuration:

Code: Select all

# lspci -vv -s 01:00
01:00.0 Network controller: Intel Corporation Wireless-AC 9260 (rev 29)
        Subsystem: Intel Corporation Wireless-AC 9260
        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 22
        Region 0: Memory at c1200000 (64-bit, non-prefetchable) [size=16K]
        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: 0000000000000000  Data: 0000
        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 0.000W
                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 5GT/s, Width x1, ASPM L1, Exit Latency L1 <8us
                        ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s (downgraded), Width x1 (ok)
                        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+, OBFF Disabled
                         AtomicOpsCtl: ReqEn-
                LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
        Capabilities: [80] MSI-X: Enable+ Count=16 Masked-
                Vector table: BAR=0 offset=00002000
                PBA: BAR=0 offset=00003000
        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: [14c v1] Latency Tolerance Reporting
                Max snoop latency: 3145728ns
                Max no snoop latency: 3145728ns
        Capabilities: [154 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                          PortCommonModeRestoreTime=30us PortTPowerOnTime=18us
                L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
                           T_CommonMode=0us LTR1.2_Threshold=163840ns
                L1SubCtl2: T_PwrOn=18us
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi

Re: M.2 wifi compatibility

Posted: Wed Feb 05, 2020 5:06 pm
by tamir
Good work on working this out @TomT, and thank you for sharing. I'm sure this could be useful for other users.

Re: M.2 wifi compatibility

Posted: Sun May 01, 2022 10:53 pm
by belette
Hi,

I am trying to make my 4G M2 card based on chipset EM7455 to work with my fitlet2 but I am unable to make it recognize properly.
In another computer it is directly recognized and initiated correctly unders /dev/ttyUSB0.
Here I got a partially recognized device but missing some steps (the latest) to make it available to interact with Linux.

On my working computer :

Code: Select all

 usbcore: registered new interface driver usbserial
 usbcore: registered new interface driver usbserial_generic
 usbserial: USB Serial support registered for generic
 usbcore: registered new interface driver qcserial
 usbserial: USB Serial support registered for Qualcomm USB modem
 usb 1-6: Qualcomm USB modem converter now attached to ttyUSB0
On fitlet2 :

Code: Select all

 usbcore: registered new interface driver usbserial_generic
 usbserial: USB Serial support registered for generic
 usbcore: registered new interface driver qcserial
 usbserial: USB Serial support registered for Qualcomm USB modem
I am wondering if I should play with some parameters like you guys for the Wireless card ?
I tried the Speed to Auto / Gen1 and the De-emphasis disabled but still the same issue..

Many thanks