<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div style="margin:0;">Hi,</div><div style="margin:0;"><br></div><div style="margin:0;">Recently I'm testing dpdk on a mini PC with N5095 CPU and 5 I225-V ethernet adapters under Ubuntu Server 22.04.1.</div><div style="margin:0;"><br></div><div style="margin:0;"><div style="margin:0;">$ uname -r</div><div style="margin:0;">5.15.0-47-generic</div></div><div style="margin:0;"><br></div><div style="margin:0;">$ cat /etc/default/grub | grep GRUB_CMDLINE_LINUX_DEFAULT</div><div style="margin:0;">GRUB_CMDLINE_LINUX_DEFAULT="default_hugepagesz=1G hugepagesz=1G hugepages=16 intel_iommu=on iommu=pt"</div><div style="margin:0;">$ update-grub</div><div style="margin:0;">$ reboot</div><div style="margin:0;"><br></div><div style="margin:0;">$ dmesg | grep DMAR</div><div style="margin:0;">[    0.016399] ACPI: DMAR 0x00000000787D6000 000088 (v02 INTEL  EDK2     00000002      01000013)</div><div style="margin:0;">[    0.016443] ACPI: Reserving DMAR table memory at [mem 0x787d6000-0x787d6087]</div><div style="margin:0;">[    0.029273] DMAR: IOMMU enabled</div><div style="margin:0;">[    0.093267] DMAR: Host address width 39</div><div style="margin:0;">[    0.093269] DMAR: DRHD base: 0x000000fed90000 flags: 0x0</div><div style="margin:0;">[    0.093276] DMAR: dmar0: reg_base_addr fed90000 ver 4:0 cap 1c0000c40660462 ecap 49e2ff0505e</div><div style="margin:0;">[    0.093281] DMAR: DRHD base: 0x000000fed91000 flags: 0x1</div><div style="margin:0;">[    0.093287] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da</div><div style="margin:0;">[    0.093291] DMAR: RMRR base: 0x0000007b800000 end: 0x0000007fbfffff</div><div style="margin:0;">[    0.093296] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1</div><div style="margin:0;">[    0.093299] DMAR-IR: HPET id 0 under DRHD base 0xfed91000</div><div style="margin:0;">[    0.093301] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.</div><div style="margin:0;">[    0.095158] DMAR-IR: Enabled IRQ remapping in x2apic mode</div><div style="margin:0;">[    0.288306] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics</div><div style="margin:0;">[    0.372113] DMAR: No ATSR found</div><div style="margin:0;">[    0.372115] DMAR: No SATC found</div><div style="margin:0;">[    0.372118] DMAR: IOMMU feature fl1gp_support inconsistent</div><div style="margin:0;">[    0.372120] DMAR: IOMMU feature pgsel_inv inconsistent</div><div style="margin:0;">[    0.372122] DMAR: IOMMU feature nwfs inconsistent</div><div style="margin:0;">[    0.372124] DMAR: IOMMU feature pds inconsistent</div><div style="margin:0;">[    0.372125] DMAR: IOMMU feature eafs inconsistent</div><div style="margin:0;">[    0.372127] DMAR: IOMMU feature prs inconsistent</div><div style="margin:0;">[    0.372129] DMAR: IOMMU feature nest inconsistent</div><div style="margin:0;">[    0.372130] DMAR: IOMMU feature mts inconsistent</div><div style="margin:0;">[    0.372132] DMAR: IOMMU feature sc_support inconsistent</div><div style="margin:0;">[    0.372134] DMAR: IOMMU feature dev_iotlb_support inconsistent</div><div style="margin:0;">[    0.372136] DMAR: dmar0: Using Queued invalidation</div><div style="margin:0;">[    0.372141] DMAR: dmar1: Using Queued invalidation</div><div style="margin:0;">[    0.373075] DMAR: Intel(R) Virtualization Technology for Directed I/O</div><div style="margin:0;"><br></div><div style="margin:0;"><div style="margin:0;">$ lspci</div><div style="margin:0;"><div style="margin:0;">lspci</div><div style="margin:0;">00:00.0 Host bridge: Intel Corporation Device 4e24</div><div style="margin:0;">00:02.0 VGA compatible controller: Intel Corporation JasperLake [UHD Graphics] (rev 01)</div><div style="margin:0;">00:04.0 Signal processing controller: Intel Corporation Dynamic Tuning service</div><div style="margin:0;">00:08.0 System peripheral: Intel Corporation Device 4e11</div><div style="margin:0;">00:14.0 USB controller: Intel Corporation Device 4ded (rev 01)</div><div style="margin:0;">00:14.2 RAM memory: Intel Corporation Device 4def (rev 01)</div><div style="margin:0;">00:15.0 Serial bus controller: Intel Corporation Serial IO I2C Host Controller (rev 01)</div><div style="margin:0;">00:15.2 Serial bus controller: Intel Corporation Device 4dea (rev 01)</div><div style="margin:0;">00:16.0 Communication controller: Intel Corporation Management Engine Interface (rev 01)</div><div style="margin:0;">00:17.0 SATA controller: Intel Corporation Device 4dd3 (rev 01)</div><div style="margin:0;">00:19.0 Serial bus controller: Intel Corporation Device 4dc5 (rev 01)</div><div style="margin:0;">00:19.1 Serial bus controller: Intel Corporation Device 4dc6 (rev 01)</div><div style="margin:0;">00:1c.0 PCI bridge: Intel Corporation Device 4db8 (rev 01)</div><div style="margin:0;">00:1c.4 PCI bridge: Intel Corporation Device 4dbc (rev 01)</div><div style="margin:0;">00:1c.5 PCI bridge: Intel Corporation Device 4dbd (rev 01)</div><div style="margin:0;">00:1c.6 PCI bridge: Intel Corporation Device 4dbe (rev 01)</div><div style="margin:0;">00:1c.7 PCI bridge: Intel Corporation Device 4dbf (rev 01)</div><div style="margin:0;">00:1e.0 Communication controller: Intel Corporation Device 4da8 (rev 01)</div><div style="margin:0;">00:1e.3 Serial bus controller: Intel Corporation Device 4dab (rev 01)</div><div style="margin:0;">00:1f.0 ISA bridge: Intel Corporation Device 4d87 (rev 01)</div><div style="margin:0;">00:1f.3 Audio device: Intel Corporation Device 4dc8 (rev 01)</div><div style="margin:0;">00:1f.4 SMBus: Intel Corporation JaserLake SMBus (rev 01)</div><div style="margin:0;">00:1f.5 Serial bus controller: Intel Corporation JaserLake SPI (flash) Controller (rev 01)</div><div style="margin:0;">01:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)</div><div style="margin:0;">02:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)</div><div style="margin:0;">03:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)</div><div style="margin:0;">04:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)</div><div style="margin:0;">05:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)</div><div style="margin:0;"><br></div><div style="margin:0;">(after huge page setup)</div><div style="margin:0;"><div style="margin:0;">$ python3 dpdk-hugepages.py -s</div><div style="margin:0;">Node Pages Size Total</div><div style="margin:0;">0    1607  2Mb    3Gb</div><div style="margin:0;"><br></div><div style="margin:0;">Hugepages mounted on /dev/hugepages /mnt/huge</div></div><div style="margin:0;"><br></div><div style="margin:0;">$ ifconfig enp2s0 down</div><div style="margin:0;">$ ifconfig enp3s0 down</div><div style="margin:0;">$ python3 dpdk-devbind.py --bind=vfio-pci 0000:02:00.0</div><div style="margin:0;">$ python3 dpdk-devbind.py --bind=vfio-pci 0000:03:00.0</div><div style="margin:0;">$ python3 dpdk-devbind.py -s</div><div style="margin:0;"><br></div><div style="margin:0;">Network devices using DPDK-compatible driver</div><div style="margin:0;">============================================</div><div style="margin:0;">0000:02:00.0 'Ethernet Controller I225-V 15f3' drv=vfio-pci unused=igc</div><div style="margin:0;">0000:03:00.0 'Ethernet Controller I225-V 15f3' drv=vfio-pci unused=igc</div><div style="margin:0;"><br></div><div style="margin:0;">Network devices using kernel driver</div><div style="margin:0;">===================================</div><div style="margin:0;">0000:01:00.0 'Ethernet Controller I225-V 15f3' if=enp1s0 drv=igc unused=vfio-pci *Active*</div><div style="margin:0;">0000:04:00.0 'Ethernet Controller I225-V 15f3' if=enp4s0 drv=igc unused=vfio-pci </div><div style="margin:0;">0000:05:00.0 'Ethernet Controller I225-V 15f3' if=enp5s0 drv=igc unused=vfio-pci </div><div style="margin:0;"><br></div><div style="margin:0;">No 'Baseband' devices detected</div><div style="margin:0;">==============================</div><div style="margin:0;"><br></div><div style="margin:0;">No 'Crypto' devices detected</div><div style="margin:0;">============================</div><div style="margin:0;"><br></div><div style="margin:0;">No 'DMA' devices detected</div><div style="margin:0;">=========================</div><div style="margin:0;"><br></div><div style="margin:0;">No 'Eventdev' devices detected</div><div style="margin:0;">==============================</div><div style="margin:0;"><br></div><div style="margin:0;">No 'Mempool' devices detected</div><div style="margin:0;">=============================</div><div style="margin:0;"><br></div><div style="margin:0;">No 'Compress' devices detected</div><div style="margin:0;">==============================</div><div style="margin:0;"><br></div><div style="margin:0;">No 'Misc (rawdev)' devices detected</div><div style="margin:0;">===================================</div><div style="margin:0;"><br></div><div style="margin:0;">No 'Regex' devices detected</div><div style="margin:0;">===========================</div><div style="margin:0;"><br></div><div style="margin:0;">After the above configuration, dpck setup should be done. Then I tried to run l2fwd. It generates the following errror messages:</div><div style="margin:0;"><br></div><div style="margin:0;"><div style="margin:0;">$ ./l2fwd</div><div style="margin:0;">EAL: Detected CPU lcores: 4</div><div style="margin:0;">EAL: Detected NUMA nodes: 1</div><div style="margin:0;">EAL: Detected shared linkage of DPDK</div><div style="margin:0;">EAL: Multi-process socket /var/run/dpdk/rte/mp_socket</div><div style="margin:0;">EAL: Selected IOVA mode 'VA'</div><div style="margin:0;">EAL: VFIO support initialized</div><div style="margin:0;">EAL: Using IOMMU type 1 (Type 1)</div><div style="margin:0;">EAL: Probe PCI driver: net_igc (8086:15f3) device: 0000:02:00.0 (socket 0)</div><div style="margin:0;">EAL: Releasing PCI mapped resource for 0000:02:00.0</div><div style="margin:0;">EAL: Calling pci_unmap_resource for 0000:02:00.0 at 0x1100800000</div><div style="margin:0;">EAL: Calling pci_unmap_resource for 0000:02:00.0 at 0x1100900000</div><div style="margin:0;">EAL: Requested device 0000:02:00.0 cannot be used</div><div style="margin:0;">EAL: Using IOMMU type 1 (Type 1)</div><div style="margin:0;">EAL: Probe PCI driver: net_igc (8086:15f3) device: 0000:03:00.0 (socket 0)</div><div style="margin:0;">EAL: Releasing PCI mapped resource for 0000:03:00.0</div><div style="margin:0;">EAL: Calling pci_unmap_resource for 0000:03:00.0 at 0x1100904000</div><div style="margin:0;">EAL: Calling pci_unmap_resource for 0000:03:00.0 at 0x1100a04000</div><div style="margin:0;">EAL: Requested device 0000:03:00.0 cannot be used</div><div style="margin:0;">TELEMETRY: No legacy callbacks, legacy socket not created</div><div style="margin:0;">MAC updating enabled</div><div style="margin:0;">EAL: Error - exiting with code: 1</div><div style="margin:0;">  Cause: No Ethernet ports - bye</div></div><div style="margin:0;"><br></div><div style="margin:0;">It seems that the I225 adapters are not recognized by DPDK. I can not see any detailed reasons why the adapters cannot be used.</div><div style="margin:0;">Any suggestions to fix this issue?</div><div style="margin:0;"><br></div><div style="margin:0;">Regards,</div><div style="margin:0;">F32</div></div></div></div>