In response to various current limitations of the Linux kernel FPGA manager subsystem, AMD-Xilinx engineers have posted a solicitation for comments on the Linux kernel list and plan to provide a patch for the Linux kernel to introduce a new sysfs interface, which allows for more user space control of the FPGA.
This new sysfs interface can handle FPGA configuration, driver detection and removal, bridging, device tree overlay file support for reprogramming the FPGA while the operating system is running, and can also provide more user space features through the mainline version of the Linux Kernel that are not currently available.
AMD's new proposal hopes to standardize the FPGA subsystem user space interface in a way that is suitable for upstream to the mainline Linux Kernel. However, this is still at the proposal stage, and it depends on how the Linux community discusses it.
Below is a request for comment posted by AMD-Xilinx engineers:
The existing FPGA manager subsystem does not have any user space interface in the kernel, except for status and other states in sysfs.
Basically FPGA is a semiconductor device that can be reprogrammed for the required hardware functionality, FPGA can be reprogrammed with different types of logic and IP at runtime as per the user's needs, so device tree overlays need to be used to remove/update/add devices at runtime for the existing IP and controller of the FPGA.
But for now there is no user interface in LinuxKernel to update the device tree at runtime.
Not long ago, PantelisAntoniou released a series of works. This patch introduced the user interface configfs for device tree overlay, which is a method of dynamically changing the kernel's real-time device tree. However, due to various problems, this series may not be accepted in the mainline.
One of the main issues raised by this configfs interface is security, since it exposes the interface to the user for modifying the real-time device tree. So in order to configure/program FPGA devices all major FPGA vendors use this configfs series as thePatched out of the tree and never attempted to introduce a common interface to configure/program the upstream FPGA and the upstream kernel ended up not providing proper support for the FPGA.
Note: Xilinx is a major chip developer in the FPGA field. The company has been acquired by AMD. In June last year, AMD announced that Xilinx would be renamed AMD Embedded.
learn more:
https://lore.kernel.org/lkml/DM6PR12MB3993D5ECA50B27682AEBE19FCD67A@DM6PR12MB3993.namprd12.prod.outlook.com/