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

ID 683517
Date 1/19/2024
Public
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