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

Ixiasoft

Document Table of Contents

3.5.9.3.3.1. 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 mem zone in

    p0_software/dpdk/dpdk/patches/v21.11.2/dpdk-stable/config/rte_config.h .

    #define RTE_MAX_MEMZONE 20480

  3. Undefine single function mode in

    p0_software/dpdk/dpdk/patches/v21.11.2/dpdk-stable/examples/mcdma-test/perfq/meson.build .

    -UIFC_MCDMA_SINGLE_FUNC

  4. Update the static channel mapping in

    p0_software/dpdk/dpdk/patches/v21.11.2/dpdk-stable/examples/mcdma-test/perfq/perfq_app.h by modifying the following parameters:

    /* PF count starts from 1 */

    #define IFC_QDMA_CUR_PF <pf number>

    /*VF count starts from 1. Zero implies PF was used instead of VF */

    #define IFC_QDMA_CUR_VF <vf number>

    /* Number of PFs */

    #define IFC_QDMA_PFS <number of PFs>

    /* Channels available per PF */

    #define IFC_QDMA_PER_PF_CHNLS <number of channels per PF>

    /* Channels available per VF */

    #define IFC_QDMA_PER_VF_CHNLS <number of channels per VF>

    /* Number of VFs per PF */

    #define IFC_QDMA_PER_PF_VFS <number of VFs per PF>

  5. 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

  6. Navigate to the perfq folder:

    $ cd examples/mcdma-test/perfq

  7. Verify the Packet Loopback design example variant using the following command:
    $ sudo ./build/mcdma-test -m 16384 -l 0-8 -- -p 64 -l 2 \
    -i -d 1 -c 2048 -a 4
Figure 46. DPDK Avalon-ST Device-side Packet Loopback Design Example Gen4 x16: P-Tile Hardware Test Result
Note: For a 2048-channel test, use the following configurations:
  • With SR-IOV: 2 PFs (512 channels per PF) and 2 VFs per PF (256 channels per VF).

    Without SR-IOV : 4 PFs (512 channels per PF).

Note:
  • In the current release, a single page is supported in DIDF mode.
  • In the current release, a simultaneous process is not supported in DIDF mode. You can run one process with 2K channels.