[Genio1200]The issue that M.2 slot can not detect external PCIe device

Hi MTK:

As the title, the ubuntu system on Genio 1200 can not detect the PCIe device (APU). But the device can be detected by ROCK 5B EVB. For this issue, can you give some suggestions about it? Or deliver the correspond PIC? Thanks a lot.

The details as follows:

HW platform:

Genio 1200 EVK

Image:

Ubuntu Desktop 22.04 LTS

https://ubuntu.com/download/mediatek-genio

PS:

We connect to the other M.2 slot, not remove the PCIe WiFi module.

Add more kernel log:

ubuntu@mtk-genio:~$ sudo dmesg | grep -i “pci”

[ 0.186466] PCI: CLS 0 bytes, default 64
[ 0.583839] ehci-pci: EHCI PCI platform driver
[ 0.586587] ohci-pci: OHCI PCI platform driver
[ 1.406369] mtk-pcie 112f0000.pcie: host bridge /soc/pcie@112f0000 ranges:
[ 1.407421] mtk-pcie 112f0000.pcie: IO 0x0020000000..0x00201fffff → 0x0020000000
[ 1.408453] mtk-pcie 112f0000.pcie: MEM 0x0020200000..0x0023ffffff → 0x0020200000
[ 1.541074] mtk-pcie 112f0000.pcie: PCI host bridge to bus 0000:00
[ 1.541909] pci_bus 0000:00: root bus resource [io 0x0000-0x1fffff] (bus address [0x20000000-0x201fffff])
[ 1.543179] pci_bus 0000:00: root bus resource [mem 0x20200000-0x23ffffff]
[ 1.544152] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 1.544937] pci 0000:00:00.0: [14c3:8195] type 01 class 0x060400
[ 1.545752] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit pref]
[ 1.546859] pci 0000:00:00.0: supports D1 D2
[ 1.547448] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 1.557649] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 1.558955] pci 0000:01:00.0: [14c3:7961] type 00 class 0x028000
[ 1.559839] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit pref]
[ 1.560803] pci 0000:01:00.0: reg 0x18: [mem 0x00000000-0x00003fff 64bit pref]
[ 1.561754] pci 0000:01:00.0: reg 0x20: [mem 0x00000000-0x00000fff 64bit pref]
[ 1.562858] pci 0000:01:00.0: supports D1 D2
[ 1.563435] pci 0000:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 1.582965] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[ 1.583914] pci 0000:00:00.0: BAR 15: assigned [mem 0x20200000-0x203fffff 64bit pref]
[ 1.584934] pci 0000:00:00.0: BAR 0: assigned [mem 0x20400000-0x20403fff 64bit pref]
[ 1.585957] pci 0000:01:00.0: BAR 0: assigned [mem 0x20200000-0x202fffff 64bit pref]
[ 1.586978] pci 0000:01:00.0: BAR 2: assigned [mem 0x20300000-0x20303fff 64bit pref]
[ 1.588027] pci 0000:01:00.0: BAR 4: assigned [mem 0x20304000-0x20304fff 64bit pref]
[ 1.589047] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 1.589701] pci 0000:00:00.0: bridge window [mem 0x20200000-0x203fffff 64bit pref]
[ 1.591091] pcieport 0000:00:00.0: Adding to iommu group 0
[ 1.592778] pcieport 0000:00:00.0: enabling device (0000 → 0002)
[ 1.596872] pcieport 0000:00:00.0: PME: Signaling with IRQ 415
[ 1.598473] pcieport 0000:00:00.0: AER: enabled with IRQ 415
ubuntu@mtk-genio:~$

ubuntu@mtk-genio:~$

ubuntu@mtk-genio:~$ sudo lcspci -vvv

00:00.0 PCI bridge: MEDIATEK Corp. Device 8195 (rev 01) (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- SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 415
IOMMU group: 0
Region 0: Memory at 20400000 (64-bit, prefetchable) [size=16K]
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 0000f000-00000fff [disabled]
Memory behind bridge: fff00000-000fffff [disabled]
Prefetchable memory behind bridge: 0000000020200000-00000000203fffff [size=2M]
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: [80] 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 512 bytes
DevSta:CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
LnkCap:Port #1, Speed 8GT/s, Width x2, ASPM L0s L1, Exit Latency L0s <2us, L1 <8us
ClockPM- Surprise+ LLActRep+ BwNot+ ASPMOptComp+
LnkCtl:ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta:Speed 5GT/s (downgraded), Width x1 (downgraded)
TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
RootCap: CRSVisible+
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible+
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
DevCap2: Completion Timeout: Range ABCD, 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.5-8GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 8GT/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: [e0] MSI: Enable+ Count=1/32 Maskable+ 64bit+
Address: 00000000112f0c00 Data: 0000
Masking: fffffffe Pending: 00000000
Capabilities: [f8] 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] Vendor Specific Information: ID=1556 Rev=1 Len=008 <?>
Capabilities: [110 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=3us PortTPowerOnTime=28us
L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
T_CommonMode=3us LTR1.2_Threshold=32768ns
L1SubCtl2: T_PwrOn=28us
Capabilities: [200 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
RootCmd: CERptEn+ NFERptEn+ FERptEn+
RootSta: CERcvd- MultCERcvd- UERcvd- MultUERcvd-
FirstFatal- NonFatalMsg- FatalMsg- IntMsg 0
ErrorSrc: ERR_COR: 0000 ERR_FATAL/NONFATAL: 0000
Capabilities: [300 v1] Secondary PCI Express
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
LaneErrStat: 0
Kernel driver in use: pcieport

01:00.0 Network controller: MEDIATEK Corp. MT7921 802.11ax PCI Express Wireless Network Adapter
Subsystem: AzureWave Device 4684
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 416
IOMMU group: 0
Region 0: Memory at 20200000 (64-bit, prefetchable) [size=1M]
Region 2: Memory at 20300000 (64-bit, prefetchable) [size=16K]
Region 4: Memory at 20304000 (64-bit, prefetchable) [size=4K]
Capabilities: [80] Express (v2) Endpoint, MSI 00
DevCap:MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, 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 512 bytes
DevSta:CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
LnkCap:Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <2us, L1 <8us
ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl:ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta:Speed 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.5-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: [e0] MSI: Enable+ Count=1/32 Maskable+ 64bit+
Address: 00000000112f0c00 Data: 0001
Masking: fffffffe Pending: 00000000
Capabilities: [f8] 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] Vendor Specific Information: ID=1556 Rev=1 Len=008 <?>
Capabilities: [108 v1] Latency Tolerance Reporting
Max snoop latency: 0ns
Max no snoop latency: 0ns
Capabilities: [110 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=3us PortTPowerOnTime=28us
L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
T_CommonMode=0us LTR1.2_Threshold=32768ns
L1SubCtl2: T_PwrOn=28us
Capabilities: [200 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
K
ubuntu@mtk-genio:~$

ubuntu@mtk-genio:~$ ubuntu@mtk-genio:~$ sudo dmesg | grep -i “pci”

[ 0.186466] PCI: CLS 0 bytes, default 64

[ 0.583839] ehci-pci: EHCI PCI platform driver

[ 0.586587] ohci-pci: OHCI PCI platform driver

[ 1.406369] mtk-pcie 112f0000.pcie: host bridge /soc/pcie@112f0000 ranges:

[ 1.407421] mtk-pcie 112f0000.pcie: IO 0x0020000000..0x00201fffff → 0x0020000000

[ 1.408453] mtk-pcie 112f0000.pcie: MEM 0x0020200000..0x0023ffffff → 0x0020200000

[ 1.541074] mtk-pcie 112f0000.pcie: PCI host bridge to bus 0000:00

[ 1.541909] pci_bus 0000:00: root bus resource [io 0x0000-0x1fffff] (bus address [0x20000000-0x201fffff])

[ 1.543179] pci_bus 0000:00: root bus resource [mem 0x20200000-0x23ffffff]

[ 1.544152] pci_bus 0000:00: root bus resource [bus 00-ff]

[ 1.544937] pci 0000:00:00.0: [14c3:8195] type 01 class 0x060400

[ 1.545752] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit pref]

[ 1.546859] pci 0000:00:00.0: supports D1 D2

[ 1.547448] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot D3cold

[ 1.557649] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring

[ 1.558955] pci 0000:01:00.0: [14c3:7961] type 00 class 0x028000

[ 1.559839] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit pref]

[ 1.560803] pci 0000:01:00.0: reg 0x18: [mem 0x00000000-0x00003fff 64bit pref]
[ 1.561754] pci 0000:01:00.0: reg 0x20: [mem 0x00000000-0x00000fff 64bit pref
]
[ 1.562858] pci 0000:01:00.0: supports D1 D2
[ 1.563435] pci 0000:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 1.582965] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[ 1.583914] pci 0000:00:00.0: BAR 15: assigned [mem 0x20200000-0x203fffff 64b
it pref]
[ 1.584934] pci 0000:00:00.0: BAR 0: assigned [mem 0x20400000-0x20403fff 64bi
t pref]
[ 1.585957] pci 0000:01:00.0: BAR 0: assigned [mem 0x20200000-0x202fffff 64bi
t pref]
[ 1.586978] pci 0000:01:00.0: BAR 2: assigned [mem 0x20300000-0x20303fff 64bi
t pref]
[ 1.588027] pci 0000:01:00.0: BAR 4: assigned [mem 0x20304000-0x20304fff 64bi
t pref]
[ 1.589047] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 1.589701] pci 0000:00:00.0: bridge window [mem 0x20200000-0x203fffff 64bi
t pref]
[ 1.591091] pcieport 0000:00:00.0: Adding to iommu group 0
[ 1.592778] pcieport 0000:00:00.0: enabling device (0000 → 0002)
[ 1.596872] pcieport 0000:00:00.0: PME: Signaling with IRQ 415
[ 1.598473] pcieport 0000:00:00.0: AER: enabled with IRQ 415

You’ll need to check the schematic, power, gpio pins for the M.2 slot and your APU PCIe device at first. Then check the power on, reset, resume sequence for each pins for the APU PCIe device. Have you already get these documents (datasheets) from the APU module maker?
You’ll need also require oscilloscope to debug these power up signaling to make sure the APU module is working and could response handshake with PCIE host controller.

By the way, Genio 1200 has only one M.2 Slot for PCIE. Where is the second M.2 slot?