From: Yidong Zhang <yidong.zhang@xxxxxxx> This patchset introduces a new Linux Kernel Driver, amd-vmgmt for AMD Alevo Versal based PCIe Card. The driver is based on Linux fpga driver framework. The AMD Alevo Versal based PCIe Card, including V70, is the first Alevo production card leveraging AMD XDNA architecture with AI Engines. It is designed for AI inference efficiency and is tuned for video analytics and natural language processing applications [1]. This amd-vmgmt driver provides services, including: - leveraging linux firmware and FPGA framework to download management firmware - program additional bit-streams for AMD Xilinx specific hardware - communicate with PCIe user function - communicate with firmware running on the PCIe Card - monitor device health The driver is licensed under GPL-2.0 except for UAPI header which is licensed GPL-2.0 WITH Linux-syscall-note. The firmware and bit-streams are distributed as a closed binary, delivered by AMD. Please see [1] for more information. [1] https://www.amd.com/en/products/accelerators/alveo/v70.html Yidong Zhang (3): drivers/fpga/amd: Add new driver for AMD Versal PCIe card drivers/fpga/amd: Add communication with firmware drivers/fpga/amd: Add remote queue service APIs MAINTAINERS | 7 + drivers/fpga/Kconfig | 3 + drivers/fpga/Makefile | 3 + drivers/fpga/amd/Kconfig | 17 + drivers/fpga/amd/Makefile | 8 + drivers/fpga/amd/vmgmt-comms.c | 344 +++++++++++++++ drivers/fpga/amd/vmgmt-comms.h | 14 + drivers/fpga/amd/vmgmt-rm-queue.c | 378 ++++++++++++++++ drivers/fpga/amd/vmgmt-rm-queue.h | 15 + drivers/fpga/amd/vmgmt-rm.c | 543 +++++++++++++++++++++++ drivers/fpga/amd/vmgmt-rm.h | 222 ++++++++++ drivers/fpga/amd/vmgmt.c | 696 ++++++++++++++++++++++++++++++ drivers/fpga/amd/vmgmt.h | 103 +++++ include/uapi/linux/vmgmt.h | 25 ++ 14 files changed, 2378 insertions(+) create mode 100644 drivers/fpga/amd/Kconfig create mode 100644 drivers/fpga/amd/Makefile create mode 100644 drivers/fpga/amd/vmgmt-comms.c create mode 100644 drivers/fpga/amd/vmgmt-comms.h create mode 100644 drivers/fpga/amd/vmgmt-rm-queue.c create mode 100644 drivers/fpga/amd/vmgmt-rm-queue.h create mode 100644 drivers/fpga/amd/vmgmt-rm.c create mode 100644 drivers/fpga/amd/vmgmt-rm.h create mode 100644 drivers/fpga/amd/vmgmt.c create mode 100644 drivers/fpga/amd/vmgmt.h create mode 100644 include/uapi/linux/vmgmt.h -- 2.34.1