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

ID 683517
Date 1/19/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

3.5.2.4.2. Install PMD and Test Application (for CentOS)

  1. Download dpdk and apply the build patches.

    Execute the following commands with root as user.

    $ cd software/dpdk/patches/v20.05-rc1

    $ sh apply-patch.sh

  2. Enable the following parameters in the build configuration.

    Update the following macro in ./config/common_base to “y”. By default, igb_uio is disabled.

    CONFIG_RTE_EAL_IGB_UIO=y

    Enabling VFIO: If you want to use VFIO instead of UIO:
    1. In the file ./dpdk/drivers/net/mcdma/rte_pmd_mcdma.h
      undefine UIO_SUPPORT #undef UIO_SUPPORT
    2. Update the following macro in ./config/common_base to “y”
      CONFIG_RTE_EAL_VFIO=y
  3. Build DPDK and install.
    Execute the following steps:
    • $ export DPDK_DIR= <cloned dir>/software/dpdk/patches/v20.05-rc1/dpdk
    • $ export RTE_SDK=${DPDK_DIR}
    • $ export DPDK_TARGET=x86_64-native-linuxapp-gcc
    • $ export RTE_TARGET=x86_64-native-linuxapp-gcc
    • $ export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET
    • $ make config T=x86_64-native-linuxapp-gcc
    • $ rm -rf x86_64-native-linuxapp-gcc
    • $ make -j32 install T=$DPDK_TARGET DESTDIR=install
  4. Execute the following steps if proceeding with UIO support.

    Install UIO base module.

    $ modprobe uio

    Install igb_uio module.

    $ insmod x86_64-native-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko

    Bind the device to the igb_uio driver.

    $ ./usertools/dpdk-devbind.py -b igb_uio <BDF>

    To install VFIO module (If VFIO is being used instead of UIO)
    $modprobe vfio-pci
    Bind the device to the vfio-pci driver.
    $DPDK_DIR/usertools/dpdk-devbind.py -b vfio-pci <BDF>
  5. Build the reference application.

    $ cd examples/mcdma-test/perfq/

    $ make clean all

    $ make