On Mon, 19 Jan 2026 04:35:51 +0000
"Xue, Chuanyu" <[email protected]> wrote:

> Hi all,
> 
> I am attempting to run DPDK 25.03 on a Raspberry Pi 4 Compute Module (IO 
> Board) using an Intel I210 PCIe NIC.
> 
> The Problem:
> I am observing 100% TX packet loss. rte_eth_tx_burst() returns values > 0, 
> indicating successful enqueueing to the driver ring, but the packets are 
> never transmitted, and the NIC stats show no completed TX packets. RX works, 
> and link status is detected as UP.
> 
> I suspect this may be related to DMA coherency or IOMMU configuration on the 
> BCM2711 PCIe bus, but I have not been able to isolate the root cause.
> 
> Environment:
> - Hardware: Raspberry Pi 4 Compute Module (IO Board)
> - NIC: Intel I210 (IGB driver) attached via PCIe
> - OS/Kernel: Linux (custom real-time config)
> - DPDK Version: 25.03 (built from source with Meson)
> - Driver: uio_pci_generic (VFIO is not standard on this kernel, 
> iommu.passthrough=1 is set)
> - Hugepages: 64 x 2MB
> 
> Configuration Details:
> I have isolated CPUs and enabled hugepages. The device is bound using 
> uio_pci_generic:
> 
> # cmdline.txt
> isolcpus=2,3 irqaffinity=0,1 iommu.passthrough=1
> 
> # Binding
> sudo python3 dpdk-devbind.py -b uio_pci_generic 0000:01:00.0
> 
> Steps to Reproduce:
> I am using testpmd in "txonly" mode to isolate the issue.
> 
> 1. Start testpmd:
> sudo ./build/app/dpdk-testpmd -l 0-1 -n 4 -a 0000:01:00.0 -- -i \
> --nb-cores=1 --port-topology=loop --total-num-mbufs=32768 --rxd=256 --txd=2048
> 
> 2. Configure forwarding:
> testpmd> set fwd txonly
> testpmd> start  
> 
> 3. Wait a few seconds, then stop and check stats:
> testpmd> stop
> testpmd> show port xstats all  
> 
> Observed Behavior:
> - Virtual Ring: When running with --vdev=net_ring0, TX works perfectly.
> - Physical I210: testpmd reports all packets as "dropped" in the summary.
> - Code Level: In my own C application, rte_eth_tx_burst returns the correct 
> number of packets (e.g., 32), meaning the PMD accepted the mbufs. However, 
> the NIC apparently fails to fetch or process the descriptors.
> 
> Question:
> Has anyone successfully validated the I210 on Pi 4 with uio_pci_generic? Are 
> there known coherence or cache flushing flags required for the igb PMD on 
> non-IOMMU ARM64 setups?
> 
> Any advice on debugging the ring state or DMA mapping for this specific SoC 
> would be appreciated.

Try vfio-pci with noiommu mode?

Reply via email to