Weu2019ve starting use the PCIe part of picoZed, xc7z030sbg485-1. The root complex seems to be coming up OK:
[root@alarm ~]# lspci
00:00.0 PCI bridge: Xilinx Corporation Device 7012
01:00.0 PCI bridge: PLX Technology, Inc. PEX 8605 PCI Express 4-port Gen2 Switch (rev ab)
02:02.0 PCI bridge: PLX Technology, Inc. PEX 8605 PCI Express 4-port Gen2 Switch (rev ab)
02:03.0 PCI bridge: PLX Technology, Inc. PEX 8605 PCI Express 4-port Gen2 Switch (rev ab)
03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
The issue seems to be with the MSI interrupt connections. When the i210 driver loads its indicating using legacy interrupts.
[ 1.159680] pci 0000:00:00.0: enabling device (0144 -> 0147)
[ 1.164007] pci 0000:01:00.0: enabling device (0140 -> 0143)
[ 1.168325] pci 0000:02:02.0: enabling device (0140 -> 0143)
[ 1.172663] igb 0000:03:00.0: enabling device (0140 -> 0142)
[ 1.210435] igb 0000:03:00.0: added PHC on eth0
[ 1.213606] igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection
[ 1.219137] igb 0000:03:00.0: eth0: (PCIe:unknown:unknown) 00:a0:c9:00:00:00
[ 1.224967] igb 0000:03:00.0: eth0: PBA No: 000300-000
[ 1.228719] igb 0000:03:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)
[ 1.235130] pci 0000:02:03.0: enabling device (0140 -> 0143)
[ 1.239423] igb 0000:04:00.0: enabling device (0140 -> 0142)
[ 1.277118] igb 0000:04:00.0: added PHC on eth1
[ 1.280260] igb 0000:04:00.0: Intel(R) Gigabit Ethernet Network Connection
[ 1.285838] igb 0000:04:00.0: eth1: (PCIe:unknown:unknown) 00:a0:c9:00:aa:aa
[ 1.291626] igb 0000:04:00.0: eth1: PBA No: 000300-000
[ 1.295394] igb 0000:04:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)
Then when we try to connect the Ethernet port we get an error 22:
[root@alarm ~]# ifconfig enp4s0 up
igb 0000:04:00.0: Error -22 getting interrupt
SIOCSIFFLAGS: Invalid argument
I have the MSI vectors req set to 5 and have MSI/MSI-X enabled in the Kernel build, and connected the interrupt from the AXI-PCIe to the Zynq core IRQ_F2P[0]. Weu2019re also using a PLX 8505 switch to connect the Intel MACs to the PCIe root.
Weu2019ve try removing one of the Intel MACs from the PLX switch (so only one is showing). The problem stayed the same.
Also, tried loading the i210 driver manual via modprobe. The problem stays the same.
Any ideas on how to debug / fixes the MSI and / or legacy interrupts issues?