Ping! > -----Original Message----- > From: Manne, Nava kishore <nava.kishore.manne@xxxxxxx> > Sent: Tuesday, October 29, 2024 2:48 PM > To: git (AMD-Xilinx) <git@xxxxxxx>; mdf@xxxxxxxxxx; hao.wu@xxxxxxxxx; > yilun.xu@xxxxxxxxx; trix@xxxxxxxxxx; robh@xxxxxxxxxx; saravanak@xxxxxxxxxx; > Manne, Nava kishore <nava.kishore.manne@xxxxxxx>; linux- > kernel@xxxxxxxxxxxxxxx; linux-fpga@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx > Subject: [RFC v2 0/1]Add user space interaction for FPGA programming > > The existing FPGA manager subsystem didn't have any user space interface (other > than the status/state in sysfs) in Kernel. Basically, FPGAs are semiconductor > devices that can be reprogrammed for desired hardware functionality. > > FPGAs can be reprogrammed at runtime with different types of logic and IPs as per > user need and hence there is a need to use device tree overlays for > removing/updating/adding the devices at runtime for the IPs/controllers that are > present in FPGA. But we don't have any user interface in kernel for updating the > device tree at runtime. > > Sometime back there was a series sent by Pantelis Antoniou > (https://lore.kernel.org/lkml/1414528565-10907-4-git-send-email- > pantelis.antoniou@xxxxxxxxxxxx/). > > This patch introduced a user interface configfs for Device Tree overlays, a method of > dynamically altering the kernel's live Device Tree. However, this patch series was > not accepted in mainline due to various concerns. > For more details refer to this link: > https://elinux.org/Frank%27s_Evolving_Overlay_Thoughts#issues_and_what_needs > _to_be_completed_--_Not_an_exhaustive_list > > One of the major valid concerns that were raised with this configfs interface was > security. It provides a generic interface (Not specific to the use cases) for modifying > the live device tree. > > In order to configure/program the FPGA devices, All the major vendors of FPGA are > using this configfs series as out-of-tree patch for configuring the FPGAs and there > was never an attempt to introduce a generic interface to configure/program the > FPGA in upstream and hence upstream kernel ended up in not having proper > support for FPGAs configure/program. > This series tries to address this gap of FPGA programmability by providing a new > IOCTL interface to the user. > > The newly introduced IOCTL interface offers a generic and standardized mechanism > for configuring or reprogramming FPGAs at runtime. It supports both Open Firmware > (OF) and non-OF devices, utilizing vendor-specific callbacks—such as > configuration+enumeration, removal, and status checks. > To accommodate diverse device-specific configurations. > > This solution enhances FPGA runtime management, supporting various device types > and vendors, while ensuring compatibility with the current FPGA configuration flow. > > Nava kishore Manne (1): > fpga-region: Add generic IOCTL interface for runtime FPGA programming > > drivers/fpga/fpga-region.c | 110 +++++++++++++++++++++++++++++++ > drivers/fpga/of-fpga-region.c | 91 ++++++++++++++++++++++++- > include/linux/fpga/fpga-region.h | 32 +++++++++ include/uapi/linux/fpga-region.h | > 51 ++++++++++++++ > 4 files changed, 283 insertions(+), 1 deletion(-) create mode 100644 > include/uapi/linux/fpga-region.h > > -- > 2.34.1