R-Tile Avalon® Streaming Intel® FPGA IP for PCI Express* Design Example User Guide

ID 683544
Date 9/26/2022

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

Document Table of Contents

2.6. Installing the Linux Kernel Driver

Note: The R-Tile Avalon Streaming Intel FGPA IP for PCIe design example has limited hardware testing support on the 22.3 release of Intel® Quartus® Prime. The instructions below can be used for early testing and for the flow required to run the design example on the Intel® Agilex™ I-Series FPGA Development Kit.
Before you can test the design example in hardware, you must install the Linux kernel driver. You can use this driver to perform the following tests:
  • A PCIe* link test that performs 100 writes and reads
  • Memory space DWORD7 reads and writes
  • Configuration Space DWORD reads and writes

In addition, you can use the driver to change the value of the following parameters:

  • The BAR being used
  • The selected device (by specifying the bus, device and function (BDF) numbers for the device)

Complete the following steps to install the kernel driver:

  1. Navigate to ./software/kernel/linux under the example design generation directory.
  2. Change the permissions on the install, load, and unload files:
    $ chmod 777 install load unload
  3. Install the driver:
    $ sudo ./install
  4. Verify the driver installation:
    $ lsmod | grep intel_fpga_pcie_drv
    Expected result:

    intel_fpga_pcie_drv 17792 0

    Note: The 17792 number from the outcome above may be different on each platform.
  5. Verify that Linux recognizes the PCIe* design example:
    $ lspci -d 1172:000 -v | grep intel_fpga_pcie_drv
    Note: If you have changed the Vendor ID, substitute the new Vendor ID for Intel® 's Vendor ID in this command (1172).
    Expected result:

    Kernel driver in use: intel_fpga_pcie_drv

7 Throughout this user guide, the terms word, DWORD and QWORD have the same meaning that they have in the PCI Express Base Specification. A word is 16 bits, a DWORD is 32 bits, and a QWORD is 64 bits.