OPAE Intel FPGA Linux Device Driver Architecture Guide
ID
683857
Date
10/02/2017
Public
1.1.1. FPGA Management Engine (FME)
1.1.2. Port
1.1.3. Accelerator Function (AF) Unit
1.1.4. Partial Reconfiguration
1.1.5. FPGA Virtualization
1.1.6. Driver Organization
1.1.7. Application FPGA Device Enumeration
1.1.8. PCIe Driver Enumeration
1.1.9. FME Platform Device Initialization
1.1.10. Port Platform Device Initialization
1.1.11. FME IOCTLs
1.1.12. Port IOCTLs
1.2.1. FME Header sysfs files
1.2.2. FME Thermal Management sysfs files
1.2.3. FME Power Management sysfs files
1.2.4. FME Global Error sysfs files
1.2.5. FME Partial Reconfiguration sysfs files
1.2.6. FME Global Performance sysfs files
1.2.7. Port Header sysfs files
1.2.8. Port AFU Header sysfs files
1.2.9. Port Error sysfs files
1.1.4. Partial Reconfiguration
As mentioned above, accelerators can be reconfigured through partial reconfiguration of an Accelerator Function (AF) file. The Accelerator Function (AF) must have been generated for the exact FIM and targeted static region (Port) of the FPGA; otherwise, the reconfiguration operation will fail and possibly cause system instability. This compatibility can be checked by comparing the interface ID noted in the AF header against the interface ID exposed by the FME through sysfs. This check is usually done by user-space before calling the reconfiguration IOCTL.
Note: Currently, any software program accessing the FPGA, including those running in a virtualized host, must be closed prior to attempting a partial reconfiguration. The steps would be:
- Unload the driver from the guest
- Unplug the VF from the guest
- Disable SR-IOV
- Perform partial reconfiguration
- Enable SR-IOV
- Plug the VF to the guest
- Load the driver in the guest