[PATCH v3 0/9] Xilinx AI engine kernel driver

From: Wendy Liang
Date: Mon Nov 30 2020 - 02:49:29 EST


AI engine is the acceleration engine provided by Xilinx. These engines
provide high compute density for vector-based algorithms, and flexible
custom compute and data movement. It has core tiles for compute and
shim tiles to interface the FPGA fabric.

You can check the AI engine architecture document for more hardware details:
https://www.xilinx.com/support/documentation/architecture-manuals/am009-versal-ai-engine.pdf

This patch series adds a Linux kernel driver to manage the Xilinx AI
engine array device and AI engine partitions (groups of AI engine tiles
dedicated to an application).

v3:
* unlock AIE dev mutex after failed to gain the partition lock in
errors handing
* replace pointer with __u64 and enum with __u32 in ioctl

v2:
* Fix dtschema check errors
* Fix test bot warning on interrupt implementation. Removed set but
unused varaible.
* Fix compilation unused function warning of firmware change in case
ZynqMP firmware is not configured
* There are other warning on ZynqMP firmware reported from testbot
which is not introduced by this patch set.
"[PATCH] firmware: xlnx-zynqmp: fix compilation warning" is submitted
for those fixes.


Izhar Ameer Shaikh (1):
firmware: xilinx: Add IOCTL support for AIE ISR Clear

Nishad Saraf (2):
misc: xilinx-ai-engine: Add support to request device management
services
misc: xilinx-ai-engine: Add support for servicing error interrupts

Wendy Liang (6):
dt-binding: soc: xilinx: ai-engine: Add AI engine binding
misc: Add Xilinx AI engine device driver
misc: xilinx-ai-engine: Implement AI engine cleanup sequence
misc: xilinx-ai-engine: expose AI engine tile memories to userspace
misc: xilinx-ai-engine: add setting shim dma bd operation
misc: xilinx-ai-engine: add request and release tiles

.../bindings/soc/xilinx/xlnx,ai-engine.yaml | 126 ++++
MAINTAINERS | 8 +
drivers/firmware/xilinx/zynqmp.c | 14 +
drivers/misc/Kconfig | 12 +
drivers/misc/Makefile | 1 +
drivers/misc/xilinx-ai-engine/Makefile | 16 +
drivers/misc/xilinx-ai-engine/ai-engine-aie.c | 608 +++++++++++++++++++
drivers/misc/xilinx-ai-engine/ai-engine-clock.c | 245 ++++++++
drivers/misc/xilinx-ai-engine/ai-engine-dev.c | 496 ++++++++++++++++
drivers/misc/xilinx-ai-engine/ai-engine-dma.c | 481 +++++++++++++++
drivers/misc/xilinx-ai-engine/ai-engine-internal.h | 519 ++++++++++++++++
.../misc/xilinx-ai-engine/ai-engine-interrupt.c | 659 +++++++++++++++++++++
drivers/misc/xilinx-ai-engine/ai-engine-mem.c | 275 +++++++++
drivers/misc/xilinx-ai-engine/ai-engine-part.c | 635 ++++++++++++++++++++
drivers/misc/xilinx-ai-engine/ai-engine-res.c | 219 +++++++
drivers/misc/xilinx-ai-engine/ai-engine-reset.c | 159 +++++
include/linux/firmware/xlnx-zynqmp.h | 8 +
include/uapi/linux/xlnx-ai-engine.h | 238 ++++++++
18 files changed, 4719 insertions(+)
create mode 100644 Documentation/devicetree/bindings/soc/xilinx/xlnx,ai-engine.yaml
create mode 100644 drivers/misc/xilinx-ai-engine/Makefile
create mode 100644 drivers/misc/xilinx-ai-engine/ai-engine-aie.c
create mode 100644 drivers/misc/xilinx-ai-engine/ai-engine-clock.c
create mode 100644 drivers/misc/xilinx-ai-engine/ai-engine-dev.c
create mode 100644 drivers/misc/xilinx-ai-engine/ai-engine-dma.c
create mode 100644 drivers/misc/xilinx-ai-engine/ai-engine-internal.h
create mode 100644 drivers/misc/xilinx-ai-engine/ai-engine-interrupt.c
create mode 100644 drivers/misc/xilinx-ai-engine/ai-engine-mem.c
create mode 100644 drivers/misc/xilinx-ai-engine/ai-engine-part.c
create mode 100644 drivers/misc/xilinx-ai-engine/ai-engine-res.c
create mode 100644 drivers/misc/xilinx-ai-engine/ai-engine-reset.c
create mode 100644 include/uapi/linux/xlnx-ai-engine.h

--
2.7.4