Multi Channel DMA for PCI Express* Intel® FPGA IP Design Example User Guide

ID 683517
Date 9/15/2021
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

3.5.2.2. Driver Support

The table below summarizes the driver support for the MCDMA design example variants. It uses the following acronyms:
  • User Space I/O (UIO): A kernel base module that the PCIe device uses to expose its resources to user space.
  • Virtual Function I/O (VFIO) driver: An IOMMU/device agnostic framework for exposing direct device access to user space in a secure, IOMMU-protected environment.
  • Data Plane Development Kit (DPDK): Consists of libraries to accelerate packet processing workloads running on a wide variety of CPU architectures.
Table 6.  Driver Support for MCDMA Design Examples
  Custom Driver DPDK Driver Kernel Mode Driver
Description Also known as the user mode driver, this driver is created to support both UIO and VFIO base kernel modules. This driver provides custom APIs and can be used without depending on any framework. This DPDK Poll Mode Driver (PMD) uses the DPDK framework. The PMD will expose the device as an ethernet device. It supports both UIO and VFIO base kernel modules. Existing DPDK applications can be integrated with the MCDMA PMD. Kernel Mode Driver (KMD) exposes the MCDMA IP through the char dev interface & using standard char dev file operations performs DMA transfers
Directory/Driver Path <example_design>/software/user <example_design>/software/dpdk <example_design>/software/kernel/
SR-IOV Support Yes Yes No
MCDMA AVMM 1-port DMA Design Example Yes, up to 2K channels Yes, up to 8 channels Yes, up to 2 K channels
MCDMA AVMM 1-port DMA with SR-IOV Design Example Yes, up to 2K channels Yes. up to 2k channels No
Bursting Master AVMM PIO using MQDMA Bypass Mode Design Example Yes Yes. We are supporting now. No
MCDMA AVST 4-port Device-side Packet Loopback Design Example Yes, 1 channel per port Yes, 1 channel per port Yes, 1 channel per port
MCDMA AVST 4-port Packet Generate/Check Design Example Yes, 1 channel per port Yes, 1 channel per port Yes, 1 channel per port
MCDMA AVST 4-Port PIO using MQDMA Bypass Mode Design Example Yes Yes No
MCDMA AVST 1-port Device-side Packet Loopback Design Example Yes Yes, same as custom mode driver Yes
MCDMA AVST 1-port Packet Generate/Check Design Example Yes Yes, same as custom mode driver Yes
MCDMA AVST 1-port PIO using MQDMA Bypass Mode Design Example Yes Yes No
MCDMA AVST 1-port Device-side Packet Loopback with SR-IOV Design Example Yes Yes No
MCDMA AVST 1-port Packet Generate/Check with SR-IOV Design Example Yes Yes No