Visible to Intel only — GUID: ewa1401204923103
Ixiasoft
1. Intel® FPGA RTE for OpenCL™ Pro Edition Getting Started Guide
2. Getting Started with the Intel® FPGA RTE for OpenCL™ Pro Edition for 64-Bit Windows
3. Getting Started with the Intel® FPGA RTE for OpenCL™ Pro Edition for x86_64 Linux Systems
4. Getting Started with the Intel® FPGA RTE for OpenCL™ Pro Edition for Intel® ARMv7-A SoC FPGA
A. Intel® FPGA RTE for OpenCL™ Pro Edition Getting Started Guide Archives
B. Document Revision History of the Intel® FPGA RTE for OpenCL™ Pro Edition Getting Started Guide
2.1. Downloading the Intel® FPGA RTE for OpenCL™ Pro Edition
2.2. Installing the Intel® FPGA RTE for OpenCL™ Pro Edition
2.3. Setting the Intel® FPGA RTE for OpenCL™ Pro Edition User Environment Variables
2.4. Verifying Software Installation
2.5. Installing an FPGA Board
2.6. Updating the Hardware Image on the FPGA
2.7. Executing an OpenCL Kernel on an FPGA
2.8. Uninstalling the Software
2.9. Uninstalling an FPGA Board
3.1. Downloading the Intel® FPGA RTE for OpenCL™ Pro Edition
3.2. Installing the Intel® FPGA RTE for OpenCL™ Pro Edition
3.3. Verifying Software Installation
3.4. Installing an FPGA Board
3.5. Updating the Hardware Image on the FPGA
3.6. Executing an OpenCL Kernel on an FPGA
3.7. Uninstalling the Software
3.8. Uninstalling an FPGA Board
4.1.1. Downloading the Intel® FPGA SDK for OpenCL and the SoC EDS
4.1.2. Installing the Intel® FPGA SDK for OpenCL Pro Edition for SoC FPGA
4.1.3. Installing the Intel® SoC FPGA Embedded Development Suite Pro Edition
4.1.4. Recompiling the Linux Kernel Driver
4.1.5. Installing the Intel FPGA RTE for OpenCL Pro Edition onto the SoC FPGA Board
4.1.6. Installing the Intel® Arria® 10 SoC Development Kit
4.1.7. Executing an OpenCL Kernel on an SoC FPGA
4.1.8. Uninstalling the Intel® FPGA RTE for OpenCL™
4.2.1. Downloading the Intel® FPGA SDK for OpenCL™ and the SoC EDS
4.2.2. Installing the Intel® FPGA SDK for OpenCL Pro Edition for SoC FPGA
4.2.3. Installing the Intel® SoC FPGA Embedded Development Suite Pro Edition
4.2.4. Recompiling the Linux Kernel Driver
4.2.5. Installing the Intel FPGA RTE for OpenCL Pro Edition onto the SoC FPGA Board
4.2.6. Installing the Intel® Arria® 10 SoC Development Kit
4.2.7. Executing an OpenCL Kernel on an SoC FPGA
4.2.8. Uninstalling the Intel® FPGA RTE for OpenCL™
Visible to Intel only — GUID: ewa1401204923103
Ixiasoft
4.1.4. Recompiling the Linux Kernel Driver4.2.4. Recompiling the Linux Kernel Driver
Compile the OpenCL™ Linux kernel driver against the compiled kernel source. If you need to rebuild the Linux kernel driver, recompile the aclsoc Linux kernel driver to the exact version of the Linux kernel running on the SoC FPGA.
The driver source is available in the Intel® FPGA RTE for OpenCL™ installation directory. Compile the driver yourself on a host machine that has sudo and the most recent version of the SoC EDS.
- Copy the driver source from $INTELFPGAOCLSDKROOT/board/a10soc/arm32/driver/ to a new directory.
- Set the KDIR value in the driver Makefile to the directory containing the Linux kernel source files that you downloaded in Compiling the Linux Kernel for the Intel Arria 10 SoC Development Kit.
- In the new directory that contains the driver source files, run the make clean command.
- Run the make command to create the aclsoc_drv.ko file.
This file is used later in Building the SD Card Image.
The driver might need to be updated to work with newer version of the Linux kernel if you see the following message while building the kernel driver:aclsoc_cmd.c:165:14: error: too many arguments to function ‘get_user_pages_unlocked’ In file included from aclsoc_cmd.c:50:0
To update the driver, make the following changes to $INTELFPGAOCLSDKROOT/board/a10soc/arm32/driver/aclsoc_cmd.c:- Find the following code in aclsoc_cmd.c:
ret = get_user_pages_unlocked(target_task, target_task->mm, start_page + got * PAGE_SIZE, num_pages - got, write, 1, p + got);
- Replace that code with the following code:
ret = get_user_pages_remote(target_task, target_task->mm, start_page + got * PAGE_SIZE, num_pages - got, FOLL_WRITE|FOLL_FORCE, p + got, vma);
- Find the following code in aclsoc_cmd.c: