...
Linux applications
The FPGA memoryI/IO O space can be mapped into the user space either accessed using /dev/mem
device or, with the help of the kernel module, the FPGA memory space can be accessed using /dev/mem
, or using /dev/fpgamem
device (only for the FPGA memory space)to achieve full performance.
Linux Kernel Driver
https://gitlab.inf.ethz.ch/project-openenzian/enzian-software/linux-memory-driver
This driver provides the ability of mapping maps the FPGA memory using huge pages and correct memory page mapping attributes (type is set to memory). Using /dev/mem sets the page mapping attributes to device . The driver also provides access to the privileged ThunderX L2$ instructions (like flush or writeback and invalidate).
The driver uses Transparent Huge Pages on kernels 5.10 and newer. On older kernels like 5.4 THP doesn't work properly, use this commit. ARM64 architecture currently only supports 2MiB and doesn't support 1GiB THP (the kernel has to be patched).
...