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?
