Open Programmable Acceleration Engine (OPAE) 0.9.0 Release Notes
================================================================

This document provides the Release Notes for the Open Programmable Acceleration
Engine (OPAE) 0.9.0 release.


System Compatibility
--------------------

* Hardware: tightly coupled FPGA products and programmable FPGA acceleration
  cards for Intel(R) Xeon(R) processors (to be released)
* Operating System: tested on RedHat 7.3, Linux kernels 3.10 through 4.7
* FIM (FPGA Interface Manager): 6.3.0


Known Issues
------------

* Partial reconfiguration with SR-IOV

  If using OPAE in a virtualized environment with SR-IOV enabled, we recommend
  disabling SR-IOV before performing partial reconfiguration. See "Partial
  Reconfiguration" in the "OPAE Intel FPGA Linux Device Driver Architecture"
  document for more information


* fpgaAssignToInterface() and fpgaReleaseFromInterface() not supported

  The OPAE C API provides functions to assign individual AFCs to host interfaces
  (i.e. a virtual or physical function). Due to the internal implementation of
  fpga_token, these functions are not yet supported. Instead, we provide a
  simplified call fpgaAssignPortToInterface() that can assign a port by number
  to either the physical function (PF) or virtual function (VF). This function
  will eventually be replaced by the more generic implementation of
  fpgaAssignToInterface() and fpgaReleaseFromInterface() in a future release.


* UMsgs are not supported on BBS 6.3.0

  The 6.3.0 blue bitstream for the Xeon Processor with Integrated FPGA exposes
  UMsg functionality, but does not fully support it. We recommend not using UMsg
  functionality with a 6.3.0 bitstream, although software will report is as
  being supported.


* Driver RPM uninstallation does not clean up initrd on CentOS

  When removing the driver RPM on CentOS, the package may leave the compiled
  FPGA driver modules in initrd.


* Allocation of multiple 1 GiB buffers on VT-d-enabled system may sporadially
  fail

  In certain configurations, allocating multiple 1 GiB huge pages on a
  non-virtualized system with VT-d turned on and an activated IOMMU may result
  in system instability. As an alternative, try disabling VT-d or the IOMMU, or
  running in a virtual machine.


* Virtualized applications with frequent MMIO accesses may sporadically fail

  In certain configuration, high-frequency MMIO accesses from a virtual machine
  with a passed-through virtual function (VF) may trigger system instability.


* Parallel partial reconfiguration on multiple FPGAs using fpgaconf may fail

  When programing multiple FPGAs concurrently using the 'fpgaconf' tool, single
  configurations may fail with the message "device enumeration failed". This is
  due to a collision of enumeration with a partial reconfiguration process, and
  is a recoverable error; either clear the PORT errors of the respective FPGA,
  or to attempt another reconfiguration using 'fpgaconf'.

