This RFC series introduces a poll mode driver for Altera Multi-Channel
Direct Memory Access (MCDMA) PCI devices. The driver exposes
host-to-device and device-to-host descriptor queues as standard DPDK
Ethernet ports for custom FPGA datapaths.

While the MCDMA IP supports multiple PFs and VFs per PF, this RFC
implements single PF with multiple VFs; each function exposes multiple
Rx/Tx queue pairs backed by H2D/D2H descriptor rings and per-queue
QCSR.

User guide reference:
https://docs.altera.com/r/docs/683821/25.3.1/multi-channel-dma-ip-for-pci-express-user-guide/before-you-begin

The series is split for review as follows:
 1. Core driver skeleton, queue management, documentation, and features
    matrix, excluding datapath bursts, debug dumps, and PIO APIs.
 2. Rx and Tx packet burst handlers.
 3. Experimental PIO BAR access APIs.
 4. Experimental QCSR inspection and dump APIs.

Functional testing was performed on Linux with vfio-pci, using DPDK
pktgen on a single PF and VF configuration. The attached user logic
was adapted as needed for validation.

We would appreciate feedback on the ethdev design, the experimental
PIO APIs, and PF/VF devargs.

Subhransu S. Prusty (4):
  net/mcdma: add Altera MCDMA poll mode driver skeleton
  net/mcdma: add Rx and Tx packet burst paths
  net/mcdma: add experimental PIO access APIs
  net/mcdma: add experimental QCSR dump APIs

 MAINTAINERS                                 |   4 +
 doc/guides/nics/features/mcdma.ini          |  17 +
 doc/guides/nics/index.rst                   |   1 +
 doc/guides/nics/mcdma.rst                   | 147 +++
 drivers/net/altera/mcdma/mcdma_config_csr.h | 201 +++++
 drivers/net/altera/mcdma/mcdma_eth.c        | 323 +++++++
 drivers/net/altera/mcdma/mcdma_eth.h        | 335 +++++++
 drivers/net/altera/mcdma/mcdma_eth_ops.c    | 933 ++++++++++++++++++++
 drivers/net/altera/mcdma/mcdma_eth_rxtx.c   | 401 +++++++++
 drivers/net/altera/mcdma/meson.build        |  16 +
 drivers/net/altera/mcdma/rte_pmd_mcdma.c    | 284 ++++++
 drivers/net/altera/mcdma/rte_pmd_mcdma.h    | 140 +++
 drivers/net/meson.build                     |   1 +
 usertools/dpdk-devbind.py                   |   1 +
 14 files changed, 2804 insertions(+)
 create mode 100644 doc/guides/nics/features/mcdma.ini
 create mode 100644 doc/guides/nics/mcdma.rst
 create mode 100644 drivers/net/altera/mcdma/mcdma_config_csr.h
 create mode 100644 drivers/net/altera/mcdma/mcdma_eth.c
 create mode 100644 drivers/net/altera/mcdma/mcdma_eth.h
 create mode 100644 drivers/net/altera/mcdma/mcdma_eth_ops.c
 create mode 100644 drivers/net/altera/mcdma/mcdma_eth_rxtx.c
 create mode 100644 drivers/net/altera/mcdma/meson.build
 create mode 100644 drivers/net/altera/mcdma/rte_pmd_mcdma.c
 create mode 100644 drivers/net/altera/mcdma/rte_pmd_mcdma.h

-- 
2.34.1

Reply via email to