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

ID 683517
Date 12/01/2021

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

Document Table of Contents Installing the Linux Kernel Driver and Enabling VFs

  1. Install the UIO driver If we are proceeding with UIO support. If we are proceeding with vfio, this step not required:

    $ modprobe uio

  2. Build the mqdma kernel driver and load:
    1. $ cd software/kernel
    2. $ make clean all -C driver/kmod/mcdma-custom-driver
    3. $ insmod driver/kmod/mcdma-custom-driver/ifc_uio.ko
  3. Verify whether driver is loaded or not:

    $ lspci -d 1172:000 -v | grep ifc_uio

    (Kernel driver in use: ifc_uio)

  4. Enable Virtual functions based on requirements:

    $ echo 2 > /sys/bus/pci/devices/<bdf>/max_vfs

Currently, UIO is the default.

To use the vfio driver, modify UIO_SUPPORT in common/mk/ as follows:

__cflags += -UUIO_SUPPORT

  1. Install vfio-pci module.

    $ modprobe vfio-pci

  2. Bind the device to vfio-pci
    1. If the device is bound to ifc_uio, unbind with the following command:

      $ echo "<bdf>" > /sys/bus/pci/devices/<bdf>/driver/unbind

      E.g: echo "0000:01:00.0" > /sys/bus/pci/devices/0000\:01\:00.0/driver/unbind

    2. Bind the device to vfio-pci

      $ echo <bdf> > /sys/bus/pci/drivers/vfio-pci/bind

      E.g: echo "0000:01:00.0" > /sys/bus/pci/drivers/vfio-pci/bind

Did you find the information on this page useful?

Characters remaining:

Feedback Message