[PATCH 0/8] ethosu: Add Arm Ethos-U driver

From: Alison Wang
Date: Fri Jun 16 2023 - 01:51:21 EST


This series contains Arm's NPU Ethos-U driver for NXP i.MX93 platform.

Ethos-U Linux driver is to provide an example of how a rich operating
system like Linux can dispatch inferences to an Arm Cortex-M subsystem,
consisting of an Arm Cortex-M and an Arm Ethos-U NPU.

----------------------------------------------------------------
Alison Wang (8):
ethosu: Add Arm Ethos-U driver
ethosu: Use RPMsg messaging protocol based on i.MX Rpmsg implementation
ethosu: Add inference type option for model and op
ethosu: Add suspend/resume power management
ethosu: Use ids for identifying messages sent to Ethos-U firmware
ethosu: Add core message about network info
ethosu: Add core message about inference cancellation
ethosu: Add rwlock when alloc and remove msg id

drivers/firmware/Kconfig | 1 +
drivers/firmware/Makefile | 1 +
drivers/firmware/ethosu/Kconfig | 24 ++++
drivers/firmware/ethosu/Makefile | 31 +++++
drivers/firmware/ethosu/ethosu_buffer.c | 319 +++++++++++++++++++++++++++++++++++++++++++
drivers/firmware/ethosu/ethosu_buffer.h | 106 +++++++++++++++
drivers/firmware/ethosu/ethosu_cancel_inference.c | 185 +++++++++++++++++++++++++
drivers/firmware/ethosu/ethosu_cancel_inference.h | 55 ++++++++
drivers/firmware/ethosu/ethosu_capabilities.c | 157 ++++++++++++++++++++++
drivers/firmware/ethosu/ethosu_capabilities.h | 47 +++++++
drivers/firmware/ethosu/ethosu_core_interface.h | 276 ++++++++++++++++++++++++++++++++++++++
drivers/firmware/ethosu/ethosu_device.c | 404 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/firmware/ethosu/ethosu_device.h | 81 +++++++++++
drivers/firmware/ethosu/ethosu_driver.c | 201 +++++++++++++++++++++++++++
drivers/firmware/ethosu/ethosu_inference.c | 529 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/firmware/ethosu/ethosu_inference.h | 125 +++++++++++++++++
drivers/firmware/ethosu/ethosu_network.c | 229 +++++++++++++++++++++++++++++++
drivers/firmware/ethosu/ethosu_network.h | 84 ++++++++++++
drivers/firmware/ethosu/ethosu_network_info.c | 184 +++++++++++++++++++++++++
drivers/firmware/ethosu/ethosu_network_info.h | 56 ++++++++
drivers/firmware/ethosu/ethosu_rpmsg.c | 414 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/firmware/ethosu/ethosu_rpmsg.h | 155 +++++++++++++++++++++
drivers/firmware/ethosu/uapi/ethosu.h | 285 +++++++++++++++++++++++++++++++++++++++
23 files changed, 3949 insertions(+)
create mode 100644 drivers/firmware/ethosu/Kconfig
create mode 100644 drivers/firmware/ethosu/Makefile
create mode 100644 drivers/firmware/ethosu/ethosu_buffer.c
create mode 100644 drivers/firmware/ethosu/ethosu_buffer.h
create mode 100644 drivers/firmware/ethosu/ethosu_cancel_inference.c
create mode 100644 drivers/firmware/ethosu/ethosu_cancel_inference.h
create mode 100644 drivers/firmware/ethosu/ethosu_capabilities.c
create mode 100644 drivers/firmware/ethosu/ethosu_capabilities.h
create mode 100644 drivers/firmware/ethosu/ethosu_core_interface.h
create mode 100644 drivers/firmware/ethosu/ethosu_device.c
create mode 100644 drivers/firmware/ethosu/ethosu_device.h
create mode 100644 drivers/firmware/ethosu/ethosu_driver.c
create mode 100644 drivers/firmware/ethosu/ethosu_inference.c
create mode 100644 drivers/firmware/ethosu/ethosu_inference.h
create mode 100644 drivers/firmware/ethosu/ethosu_network.c
create mode 100644 drivers/firmware/ethosu/ethosu_network.h
create mode 100644 drivers/firmware/ethosu/ethosu_network_info.c
create mode 100644 drivers/firmware/ethosu/ethosu_network_info.h
create mode 100644 drivers/firmware/ethosu/ethosu_rpmsg.c
create mode 100644 drivers/firmware/ethosu/ethosu_rpmsg.h
create mode 100644 drivers/firmware/ethosu/uapi/ethosu.h