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

Ixiasoft

Document Table of Contents

3.5.8.3.3.1. DMA Test Beyond 256 Channels

For a design example generated with the number of channels > 256, follow this procedure.
  1. Enable the following software flags in p0_software/user/common/mk/common.mk:

    __cflags += -DIFC_MCDMA_DIDF

    __cflags += -UIFC_MCDMA_SINGLE_FUNC

  2. Configure the static channel mapping in p0_software/user/cli/perfq_app/perfq_app.h as mentioned in the previous DMA test command for the Packet Generate/Check design example.
  3. If the Linux kernel driver has been installed, build the driver and application by following the instructions in Build and Install the User Space Library and Build the Reference Application. Otherwise, the Linux kernel driver needs to be installed before building the driver and application.

    Command:

    sudo ./perfq_app -p 64 -l 2 -z -d 1 -c 2048 -a 4

    Configuration:
    • 2K channels (-c 2048)
    • Packet Generate bidirectional (-z)
    • Payload length of 64 bytes (-p 64)
    • Transfer the data in 2 seconds (-l 2)
    • Number of threads that needs to be used (-a 4)
    • Dump the progress logs every second (-d 1)
Figure 35. Packet Generate/Check DMA Hardware Test Result with 2048 Channels
Note:
  1. For a test with 2048 channels, the following configurations can be used:

    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)

  2. Currently, in DIDF mode, a single page is supported.
  3. Simultaneous process currently cannot be supported in DIDF mode. You can run one process with 2k channels.