Hardware interface of the NXP Secure Enclave HW IP(s) like EdgeLock Enclave, V2X, SHE etc, is based on the Messaging Unit module that enables processing elements like ARMv8 core, RISC V core, within the SoC to communicate and coordinate by passing messages (e.g., data, status and control) through these interfaces. The NXP i.MX secure enclaves hardware interface kernel driver, is specifically targeted for use between application core and NXP secure-enclave(s) HW. It allows to send/receive messages to/from the secure-enclave. Patch-set adds the kernel driver for communication interface to secure-enclave, for exchanging messages with NXP secure enclave HW IP(s) like EdgeLock Enclave, both from: - User-Space Applications via character driver. - Kernel-space, used by kernel management layers like DM-Crypt. Signed-off-by: Pankaj Gupta <pankaj.gupta@xxxxxxx> --- Pankaj Gupta (4): Documentation/firmware: add imx/se to other_interfaces dt-bindings: arm: fsl: add imx-se-fw binding doc arm64: dts: imx8ulp-evk: add nxp secure enclave firmware firmware: imx: add driver for NXP EdgeLock Enclave Documentation/ABI/testing/se-cdev | 42 + .../devicetree/bindings/firmware/fsl,imx-se.yaml | 186 +++ .../driver-api/firmware/other_interfaces.rst | 126 ++ arch/arm64/boot/dts/freescale/imx8ulp-evk.dts | 17 +- arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 18 +- drivers/firmware/imx/Kconfig | 12 + drivers/firmware/imx/Makefile | 2 + drivers/firmware/imx/ele_base_msg.c | 287 +++++ drivers/firmware/imx/ele_base_msg.h | 70 + drivers/firmware/imx/ele_common.c | 341 +++++ drivers/firmware/imx/ele_common.h | 43 + drivers/firmware/imx/se_ctrl.c | 1339 ++++++++++++++++++++ drivers/firmware/imx/se_ctrl.h | 151 +++ include/linux/firmware/imx/se_api.h | 14 + include/uapi/linux/se_ioctl.h | 88 ++ 15 files changed, 2733 insertions(+), 3 deletions(-) --- base-commit: e8f897f4afef0031fe618a8e94127a0934896aba change-id: 20240507-imx-se-if-a40055093dc6 Best regards, -- Pankaj Gupta <pankaj.gupta@xxxxxxx>