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

ID 683517
Date 6/09/2025
Public

Visible to Intel only — GUID: yih1745458503941

Ixiasoft

Document Table of Contents

3.5.8.3.4. External Descriptor Controller

The UIO Linux Kernel driver should be used for this design example, The VFIO Linux Kernel driver is not supported. Use the following steps to verify the external fetch descriptors:
  1. Define the following software flag in p0_software/user/common/include/mcdma_iparams.h

    #define IFC_MCDMA_EXTERNL_DESC

  2. Complete the instructions outlined in Prerequisites to install the UIO Linux Kernel driver, and build the driver application for testing.
  3. Build the devmem utility and run as the root user.

    cd p0_software/user/cli/devmem/

    make clean all

  4. Disable the queues and FIFOs.

    sudo devmem 0000:09:00.0 0 0x8 0x1

  5. Enable the queues and FIFOs.

    sudo devmem 0000:09:00.0 0 0x8 0x0

Run the following commands to test the external fetch descriptor:

cd software/user/cli/perfq/
make clean all
sudo ./perfq_app -b 0000:09:00.0 -d 1 -c 16 -a 8 -p 128 -s 128 -u
Configuration:
  • bdf (-b 0000:09:00.0)
  • 16 channels (-c 16)
  • Bidirectional (-u)
  • Payload length of 128 bytes in each descriptor (-p 128)
  • Total data amount to transfer = 128 bytes (-s 128)
  • Dump every 1 second (-d 1)
  • Total 8 threads/CPU core used (-a 8)
Figure 36. Results of External Fetch Descriptor Test