Message ID | 20241029091734.3288005-1-nava.kishore.manne@amd.com (mailing list archive) |
---|---|
Headers | show |
Series | Add user space interaction for FPGA programming | expand |
Ping! > -----Original Message----- > From: Manne, Nava kishore <nava.kishore.manne@amd.com> > Sent: Tuesday, October 29, 2024 2:48 PM > To: git (AMD-Xilinx) <git@amd.com>; mdf@kernel.org; hao.wu@intel.com; > yilun.xu@intel.com; trix@redhat.com; robh@kernel.org; saravanak@google.com; > Manne, Nava kishore <nava.kishore.manne@amd.com>; linux- > kernel@vger.kernel.org; linux-fpga@vger.kernel.org; devicetree@vger.kernel.org > 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@konsulko.com/). > > 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