GTS AXI Multichannel DMA IP for PCI Express* User Guide

ID 847470
Date 8/25/2025
Public
Document Table of Contents

B.2.1. Architecture

Figure 62. GTS AXI MCDMA Driver Architecture

igb_uio

This is the PCIe endpoint kernel module provided by the DPDK framework. On top of this, there are some paths added to support the MSI-X and SRIOV features. By using PCIe, sysfs interrupt framework utilities, this module's reads allow the user space to access the device.

Following are the functionalities supported by this module:

  • Probes and exports channel BARs to the user space.
  • Supports Interrupt notification/clearing.
  • Enables SRIOV functionality and sets virtual functions.

The igb_uio kernel module does not support IOMMU programming.

vfio-pci

vfio-pci is the base kernel module that allows you to access the device and allows IOMMU programming by using the ioctl interface. If you want to enable the VFs by using vfio-pci, you may need to use a kernel version > 5.7.

MCDMA PMD

This is a poll mode driver which implements the APIs to perform channel management, device management and also DMA in both H2D and D2H directions. This module exposes the device as the ethdev interface.

Example Test Application

Using DPDK Environment Abstraction Layer (EAL) utilities to perform the memory management and device management.

In this application, to continuously send/receive data traffic from/to the device, use the following command line arguments as inputs:

  • Total message sizes/time duration
  • Packet size per descriptor
  • Write/Read
  • Completion reporting method
  • Number of channels

The test application runs multiple threads for accessing the DMA channels. It also has a performance measurement capability. Based on the number of threads being used and number of channels being processed, queues are scheduled on threads.