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: cpt1745526524942

Ixiasoft

Document Table of Contents

3.5.9.3.1. Avalon-MM DMA (AVMM DMA)

  1. After completing the instructions outlined in Prerequisites, navigate to the perfq folder:

    $ cd dpdk-stable/build/examples/mcdma-test/perfq

  2. Verify the AVMM DMA design example variant using the following command:
    $ sudo ./build/mcdma-test -- -b 0000:01:00.0 -p 32768 -l 5 -i -u -c 2 \
    -d 2 -a 4
Configuration:
  • bdf (-b 0000:01:00.0)
  • 2 channels (-c 2)
  • Loopback mode (-u )
  • Payload length of 32768 bytes in each descriptor (-p 32768)
  • Time limit set to 5 (-l 5)
  • Dump the progress log every 2 seconds (-d 2)
  • One thread per queue (-a 4)
Figure 41. Example Command Output for AVMM
Note: The MCDMA IP can be reset using the following command:

$ sudo ./build/mcdma-test -- -b <bdf> -e

DMA Test Beyond 256 Channels

If the design example is generated with the number of channels greater than 256, follow this procedure to run a DMA test.

  1. Define the following software flag in p0_software/dpdk/dpdk/patches/v21.11.2/dpdk-stable/drivers/net/mcdma/rte_pmd_mcdma.h

    #define IFC_MCDMA_DIDF

  2. Configure the memory zone in p0_software/dpdk/dpdk/patches/v21.11.2/dpdk-stable/config/rte_config.h

    #define RTE_MAX_MEMZONE 20480

  3. Define the following software flag in p0_software/dpdk/dpdk/patches/v21.11.2/dpdk-stable/examples/mcdma-test/perfq/meson.build

    -DIFC_MCDMA_SINGLE_FUNC

  4. Rebuild the DPDK application using the following commands for the new settings to take effect.

    $ cd p0_software/dpdk/dpdk/patches/v21.11.2/dpdk-stable/

    $ sudo meson build --reconfigure

    $ sudo DESTDIR=install ninja -C build install

    $ cd build

    $ sudo meson configure -Dexamples=mcdma-test/perfq \
    -Denable_kmods=true

    $ sudo ninja

  5. Navigate to the perfq folder:

    $ cd dpdk-stable/build/examples/mcdma-test/perfq

  6. Verify the AVMM DMA design example variant using the following command.
    $ sudo ./build/mcdma-test -- -b 0000:38:00.0 -p 64 -l 5 -u \
    -c 512 -d 2 -a 4

    Configuration:

    • 512 channels (-c 512)
    • Loopback mode (-u)
    • Payload length of 64 bytes in each descriptor (-p 64)
    • Time limit set to 5 (-l 5)
    • Dump the progress log every 2 seconds (-d 2)
    • Total of 4 threads (-a 4)
    Figure 42. Results of DMA Test with 512 Channels