Hi DPDK,

 

I am a pmd driver developer from Realtek NIC department,

when I was porting r8168pmd already verified on x86 to an ARM64 SoC Unisoc: UIS8650

I found that after NIC Rx init (in general, Rx ring and buffers should have been prepared for NIC to DMA read),

the NIC status reg showed RDU (Rx Descriptor Unavailable), which means NIC cannot read the proper desc content,

 

later I sended some packets to NIC hold by testpmd rx_only mode, HW internal Rx packet counter can grow to some value, then stuck, 8168pmd Rx debug print reported it received less packets than that value, and the print showed up even some minutes later!

 

I doubt the phenomenon is caused by improper HW-based IO coherency support on this ARM SoC,

I have read the ARM SoC support list on DPDK website, to name it: NV Bluefield, NXP DPAA, Marvell Octeon TX

 

Does DPDK (or UIO/VFIO driver or hugetlb driver) need special HW IO cache coherency support on ARM platform, say, ACE and Device side MMU etc?

Should the SoC provide specialized UIO/VFIO driver or hugetlb driver and/or specific DPDK lib to support such user mode DMA?

Will you please give suggestions, thanks a lot!

 

BRs