MalfTLP, BadTLP, errors preventing PCIe passthrough of MT7612EN WLAN mini-PCIe module

logan893

Member
Mar 23, 2022
8
0
6
I'm having trouble getting passthrough to work with a mini-PCIe WIFI module (MT7612EN).

With a fresh install of Proxmox 7.4 from ISO, when trying to activate passthrough of the PCIe WIFI module to a VM it throws a "MalfTLP" error.

Pretty much all devices have their own IOMMU group including this mini-PCIe module.
I can without problem activate passthrough of one of the built-in ethernet ports (6x i221).
The hardware is a small 6-port i221 1Gb ethernet single board PC from Aliexpress with an Intel Pentium 5405U

I've tried to change the PCIe port gen from default (Auto) to Gen2 and even Gen1, but there's no difference.

Turning off memory-mapping (pci=nommconf) puts the WLAN port in the same IOMMU group as i211 nics 3-6. Perhaps I could work with that, but the proxmox system crashes when I try to start a VM with PCI passthrough for only the WLAN device (00:03:00).

The WLAN module is verified working and able to discover and use wireless networks from e.g. a Ubuntu Desktop 22.04 LTS install running natively on the PC, and with a LibreELEC booted from USB I can activate the WLAN AP mode and connect to it from my phone.

Not sure what to try next. I'm not really getting anywhere with this so far.
Any ideas?
 
Code:
Dec 19 17:07:23 pvemini kernel: vfio-pci 0000:03:00.0: enabling device (0000 -> 0002)
Dec 19 17:07:23 pvemini kernel: vfio-pci 0000:03:00.0: vfio_ecap_init: hiding ecap 0x1e@0x160
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0: DPC: containment event, status:0x1f01 source:0x0000
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0: DPC: unmasked uncorrectable error detected
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0: PCIe Bus Error: severity=Uncorrected (Fatal), type=Transaction Layer, (Receiver ID)
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0:   device [8086:9db0] error status/mask=00040000/00010000
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0:    [18] MalfTLP                (First)
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0: AER:   TLP Header: 4a000001 03000004 00000000 00000000
Dec 19 17:07:24 pvemini QEMU[2785]: kvm: vfio_err_notifier_handler(0000:03:00.0) Unrecoverable error detected. Please collect any data possible and then kill the gue>
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0: AER: Multiple Corrected error received: 0000:00:1d.0
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0:   device [8086:9db0] error status/mask=00002040/00002000
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0:    [ 6] BadTLP
Dec 19 17:07:24 pvemini pvedaemon[1625]: <root@pam> end task UPID:pvemini:00000AD8:00003E7B:6581BFB9:qmstart:111:root@pam: OK
Dec 19 17:07:24 pvemini kernel: pcieport 0000:00:1d.0: AER: device recovery successful
Dec 19 17:07:59 pvemini pvedaemon[3143]: starting vnc proxy UPID:pvemini:00000C47:00004D5D:6581BFDF:vncproxy:111:root@pam:
Dec 19 17:07:59 pvemini pvedaemon[1623]: <root@pam> starting task UPID:pvemini:00000C47:00004D5D:6581BFDF:vncproxy:111:root@pam:
Dec 19 17:08:02 pvemini pvedaemon[1623]: <root@pam> end task UPID:pvemini:00000C47:00004D5D:6581BFDF:vncproxy:111:root@pam: OK
Dec 19 17:08:09 pvemini pvedaemon[1623]: <root@pam> starting task UPID:pvemini:00000C9F:00005158:6581BFE9:qmstop:111:root@pam:
Dec 19 17:08:09 pvemini pvedaemon[3231]: stop VM 111: UPID:pvemini:00000C9F:00005158:6581BFE9:qmstop:111:root@pam:
Dec 19 17:08:09 pvemini kernel:  zd0: p1 p2 p3
Dec 19 17:08:10 pvemini kernel: fwbr111i0: port 2(tap111i0) entered disabled state
Dec 19 17:08:10 pvemini kernel: fwbr111i0: port 1(fwln111i0) entered disabled state
Dec 19 17:08:10 pvemini kernel: vmbr0: port 2(fwpr111p0) entered disabled state
Dec 19 17:08:10 pvemini kernel: device fwln111i0 left promiscuous mode
Dec 19 17:08:10 pvemini kernel: fwbr111i0: port 1(fwln111i0) entered disabled state
Dec 19 17:08:10 pvemini kernel: device fwpr111p0 left promiscuous mode
Dec 19 17:08:10 pvemini kernel: vmbr0: port 2(fwpr111p0) entered disabled state
Dec 19 17:08:10 pvemini qmeventd[1154]: read: Connection reset by peer
Dec 19 17:08:10 pvemini pvedaemon[1621]: VM 111 qmp command failed - VM 111 not running
Dec 19 17:08:10 pvemini kernel: pcieport 0000:00:1d.0: DPC: containment event, status:0x1f01 source:0x0000
Dec 19 17:08:10 pvemini kernel: pcieport 0000:00:1d.0: DPC: unmasked uncorrectable error detected
Dec 19 17:08:10 pvemini kernel: pcieport 0000:00:1d.0: PCIe Bus Error: severity=Uncorrected (Fatal), type=Transaction Layer, (Receiver ID)
Dec 19 17:08:10 pvemini kernel: pcieport 0000:00:1d.0:   device [8086:9db0] error status/mask=00040000/00010000
Dec 19 17:08:10 pvemini kernel: pcieport 0000:00:1d.0:    [18] MalfTLP                (First)
Dec 19 17:08:10 pvemini kernel: pcieport 0000:00:1d.0: AER:   TLP Header: 4a000001 03000004 00000000 00000000
Dec 19 17:08:10 pvemini pvedaemon[1623]: <root@pam> end task UPID:pvemini:00000C9F:00005158:6581BFE9:qmstop:111:root@pam: OK
Dec 19 17:08:11 pvemini qmeventd[3261]: Starting cleanup for 111
Dec 19 17:08:11 pvemini qmeventd[3261]: Finished cleanup for 111
Dec 19 17:08:11 pvemini kernel: vfio-pci 0000:03:00.0: not ready 1023ms after PM D3hot->D0; waiting
Dec 19 17:08:12 pvemini kernel: vfio-pci 0000:03:00.0: not ready 2047ms after PM D3hot->D0; waiting
Dec 19 17:08:14 pvemini kernel: vfio-pci 0000:03:00.0: not ready 4095ms after PM D3hot->D0; waiting
Dec 19 17:08:19 pvemini kernel: vfio-pci 0000:03:00.0: not ready 8191ms after PM D3hot->D0; waiting
Dec 19 17:08:27 pvemini kernel: vfio-pci 0000:03:00.0: not ready 16383ms after PM D3hot->D0; waiting
Dec 19 17:08:44 pvemini kernel: vfio-pci 0000:03:00.0: not ready 32767ms after PM D3hot->D0; waiting


Code:
00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #9 (rev f0) (prog-if 00 [Normal decode])
        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 124
        IOMMU group: 13
        Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
        I/O behind bridge: 0000f000-00000fff [disabled]
        Memory behind bridge: a1100000-a12fffff [size=2M]
        Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff [disabled]
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
        BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16+ MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0
                        ExtTag- RBE+
                DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
                LnkCap: Port #9, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <16us
                        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 (ok), Width x1 (ok)
                        TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
                SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
                        Slot #12, PowerLimit 10.000W; Interlock- NoCompl+
                SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                        Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
                SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
                        Changed: MRL- PresDet- LinkState+
                RootCap: CRSVisible-
                RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
                DevCap2: Completion Timeout: Range ABC, TimeoutDis+ NROPrPrP- LTR+
                         10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- LN System CLS Not Supported, TPHComp- ExtTPHComp- ARIFwd+
                         AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled, ARIFwd-
                         AtomicOpsCtl: ReqEn- EgressBlck-
                LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
                LnkCtl2: Target Link Speed: 2.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-
                         Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
                Address: fee00298  Data: 0000
        Capabilities: [90] Subsystem: Intel Corporation Cannon Point-LP PCI Express Root Port
        Capabilities: [a0] 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: [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: 12, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn-
                        MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
                HeaderLog: 4a000001 03000004 00000000 00000000
                RootCmd: CERptEn+ NFERptEn+ FERptEn+
                RootSta: CERcvd- MultCERcvd- UERcvd- MultUERcvd-
                         FirstFatal- NonFatalMsg- FatalMsg- IntMsg 0
                ErrorSrc: ERR_COR: 00e8 ERR_FATAL/NONFATAL: 0000
        Capabilities: [140 v1] Access Control Services
                ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
                ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
        Capabilities: [150 v1] Precision Time Measurement
                PTMCap: Requester:- Responder:+ Root:+
                PTMClockGranularity: 4ns
                PTMControl: Enabled:+ RootSelected:+
                PTMEffectiveGranularity: Unknown
        Capabilities: [250 v1] Downstream Port Containment
                DpcCap: INT Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 4, DL_ActiveErr+
                DpcCtl: Trigger:1 Cmpl- INT+ ErrCor- PoisonedTLP- SwTrigger- DL_ActiveErr-
                DpcSta: Trigger- Reason:00 INT- RPBusy- TriggerExt:00 RP PIO ErrPtr:1f
                Source: 0000
        Kernel driver in use: pcieport


03:00.0 Network controller: MEDIATEK Corp. Device 7612
        Subsystem: MEDIATEK Corp. Device 7612
        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-
        Interrupt: pin A routed to IRQ 11
        IOMMU group: 21
        Region 0: Memory at a1100000 (64-bit, non-prefetchable) [disabled] [size=1M]
        Expansion ROM at a1200000 [disabled] [size=64K]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [70] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10.000W
                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 unlimited
                        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 (ok), Width x1 (ok)
                        TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR-
                         10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- TPHComp- ExtTPHComp-
                         AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled,
                         AtomicOpsCtl: ReqEn-
                LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
                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-
                         Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: [100 v2] 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: [148 v1] Device Serial Number 00-00-00-00-00-00-00-00
        Capabilities: [158 v1] Latency Tolerance Reporting
                Max snoop latency: 0ns
                Max no snoop latency: 0ns
        Capabilities: [160 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                          PortCommonModeRestoreTime=50us PortTPowerOnTime=10us
                L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                           T_CommonMode=0us LTR1.2_Threshold=81920ns
                L1SubCtl2: T_PwrOn=10us
        Kernel driver in use: vfio-pci
        Kernel modules: mt76x2e
 
lspci after the failed VM start.

Code:
03:00.0 Network controller: MEDIATEK Corp. Device 7612
        Subsystem: MEDIATEK Corp. Device 7612
        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-
        Interrupt: pin A routed to IRQ 16
        IOMMU group: 21
        Region 0: Memory at a1100000 (64-bit, non-prefetchable) [disabled] [size=1M]
        Expansion ROM at a1200000 [disabled] [size=64K]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: ffffffff00000000  Data: ffff
        Capabilities: [70] <chain broken>
        Kernel driver in use: vfio-pci
        Kernel modules: mt76x2e

In addition to this, I have also tried without disable_idle_d3=1 for the vfio-pci config, and also with pci=nommconf for kernel cmdline.

Code:
root@pvemini:~# cat /etc/modprobe.d/wlan-passthrough.conf
# enable PCIe passthrough for MediaTek MT76 (mt76x2e)
options vfio-pci ids=14c3:7612,14c3:7612 disable_idle_d3=1
blacklist mt76x2e
root@pvemini:~# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

# PCIe passthrough
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

root@pvemini:~# cat /etc/kernel/cmdline
root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt
root@pvemini:~#

Code:
root@pvemini:~# dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
[    0.013492] ACPI: DMAR 0x000000008C65B2A0 0000A8 (v01 INTEL  EDK2     00000002      01000013)
[    0.013541] ACPI: Reserving DMAR table memory at [mem 0x8c65b2a0-0x8c65b347]
[    0.132936] DMAR: IOMMU enabled
[    0.344471] DMAR: Host address width 39
[    0.344473] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.344481] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[    0.344487] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.344492] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.344497] DMAR: RMRR base: 0x0000008b93d000 end: 0x0000008b95cfff
[    0.344501] DMAR: RMRR base: 0x0000008d800000 end: 0x0000008fffffff
[    0.344505] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.344508] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.344511] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.347187] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.746575] DMAR: No ATSR found
[    0.746578] DMAR: No SATC found
[    0.746581] DMAR: IOMMU feature fl1gp_support inconsistent
[    0.746582] DMAR: IOMMU feature pgsel_inv inconsistent
[    0.746585] DMAR: IOMMU feature nwfs inconsistent
[    0.746588] DMAR: IOMMU feature pasid inconsistent
[    0.746591] DMAR: IOMMU feature eafs inconsistent
[    0.746593] DMAR: IOMMU feature prs inconsistent
[    0.746595] DMAR: IOMMU feature nest inconsistent
[    0.746598] DMAR: IOMMU feature mts inconsistent
[    0.746600] DMAR: IOMMU feature sc_support inconsistent
[    0.746603] DMAR: IOMMU feature dev_iotlb_support inconsistent
[    0.746606] DMAR: dmar0: Using Queued invalidation
[    0.746614] DMAR: dmar1: Using Queued invalidation
[    0.747419] DMAR: Intel(R) Virtualization Technology for Directed I/O
root@pvemini:~#
 
In case anyone stumbles upon this, I seem to have found a solution that lets me pass the WLAN device to a VM. I have it working as a client in an Ubuntu VM. Hoping I can also use it properly as an AP via passthrough.

I found that others, primarily with GPU passthrough, say ASPM (active-state power management) may be a problem and to turn this off. There's a kernel parameter, pcie_aspm=off, but this would switch it off for everything. I instead switched off ASPM for the specific PCIe slot, and that seem to have done the trick.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!