[PATCH V1 0/3] Add new driver for AMD Versal PCIe Card

From: David Zhang
Date: Mon Oct 07 2024 - 17:56:16 EST


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