Building the OPAE Intel FPGA driver (in-tree)¶
git clone ssh://«Place your username here»@git-amr-1.devtools.intel.com:29418/cpt_sys_sw-intel-fpga
cd cpt_sys_sw-intel-fpga
git config user.name "«Place your name here»"
git config user.email "«Place your email here»"
curl -k https://git-amr-1.devtools.intel.com/gerrit/tools/hooks/commit-msg -o .git/hooks/commit-msg
git checkout fpga-all
git pull
make oldconfig
make prepare
make modules SUBDIRS=drivers/fpga
Kernel modules built using in-tree building cannot *insmod’d* or
*modprobe’d* into the currently running kernel (e.g. in-tree building
the Intel FPGA driver when running on a workstation with different
kernel); unless the currently running kernel is the same than kernel on
Intel FPGA driver repository.
Building the OPAE Intel FPGA driver (out-of-tree)¶
Steps¶
Fetch the Intel FPGA kernel repository
Fetch the Intel FPGA internal tools repository
Configure the Intel FPGA internal tools project
Build the driver
Build distribution package (tarball)
Build RPM package (RPM)
Insert the driver into currently running kernel
The resulting kernel objects has only been tested for correct functionality
between kernel 3.10 up to kernel 4.10.
Fetch the Intel FPGA kernel repository¶
git clone ssh://«Place your username here»@git-amr-1.devtools.intel.com:29418/cpt_sys_sw-intel-fpga
cd cpt_sys_sw-intel-fpga
git config user.name "«Place your name here»"
git config user.email "«Place your email here»"
curl -k https://git-amr-1.devtools.intel.com/gerrit/tools/hooks/commit-msg -o .git/hooks/commit-msg
git checkout feature/cmake
git pull
Fetch the Intel FPGA internal tools repository¶
git clone ssh://«Place your username here»@git-amr-1.devtools.intel.com:29418/cpt_sys_sw-fpga-internal
cd cpt_sys_sw-fpga-internal
git config user.name "«Place your name here»"
git config user.email "«Place your email here»"
curl -k https://git-amr-1.devtools.intel.com/gerrit/tools/hooks/commit-msg -o .git/hooks/commit-msg
git checkout develop
git pull
Configure the Intel FPGA internal tools project¶
cd cpt_sys_sw-fpga-internal
cd fpga_driver/fpga-kernel
mkdir mybuild
cd mybuild
cmake .. «user configuration flags»
Valid «user configuration flags» are:
cmake flag                                                             Optional or mandatory   Purpose                       Default value
---------------------------------------------------------------------- ----------------------- ----------------------------- ---------------
-DINTEL_FPGA_DRIVER_VER_MAJOR                                          Optional                Driver major version          0
-DINTEL_FPGA_DRIVER_VER_MINOR                                          Optional                Driver minor version          1
-DINTEL_FPGA_DRIVER_VER_REV                                            Optional                Driver revision version       0
-DKERNEL_SOURCE_DIR=«path to the root of the FPGA kernel repository»   Mandatory               Path for driver source code   None
Build the driver¶
cd cpt_sys_sw-fpga-internal
cd fpga_driver/fpga_kernel
cd mybuild # (created during previous step)
make «user target»
Valid «user targets» are:
make target                Purpose
-------------------------- ----------------------------------------------------------------------------------------------------------
make                       Compiles the driver
make distgpl               Creates distributable driver tarball: gpl/opae-intel-fpga-driver-<release>.tar.gz
make debgpl                Create Debian DKMS-enabled driver installer package: gpl/debian/opae-intel-fpga-driver_<release>_amd64.deb
make rpmgpl                Create Redhat DKMS-enabled driver installer package: gpl/rpm/opae-intel-fpga-driver-<release>.x86_64.rpm
Inserting the driver into currently running kernel¶
After building the driver (previous step), driver can be inserted into the currently running kernel.
cd cpt_sys_sw-fpga-internal
cd fpga_driver/fpga_kernel
cd mybuild # (created during previous step)
sudo insmod ./drivers/fpga/fpga-mgr-mod.ko
sudo insmod ./drivers/fpga/intel/intel-fpga-pci.ko
sudo insmod ./drivers/fpga/intel/intel-fpga-afu.ko
sudo insmod ./drivers/fpga/intel/intel-fpga-fme.ko
Before running applications; system administrator should request OS to enable allocation of 2,048kB memory pages. System adminitrator ('root') should run following command for such purpose:
echo 20 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages