V6 Changes: - 1/11 (New): Kernel doc: "Documentation/driver-api/firmware/other_interfaces.rst" is added. - 2/11 DT Binding: Disposed off comments from .yaml -- replaced the "sram-pool" property, with standard property "fsl,sram". -- removed the additional details from the description. - 3,4,5,6/11: DTSI changes: -- Validated using the following commands: --- make dt_binding_check DT_SCHEMA_FILES=freescale --- make CHECK_DTBS=y freescale/imx8ulp-evk.dtb; make CHECK_DTBS=y freescale/imx93-11x11-evk.dtb - 7/11 firmware: imx: add driver for NXP EdgeLock Enclave: -- Removed: Reported-by: kernel test robot <lkp@xxxxxxxxx> Closes:https://lore.kernel.org/oe-kbuild-all/202304120902.bP52A56z-lkp@xxxxxxxxx -- pr_info is removed. -- macro "devctx_info", "devctx_dbg" & "devctx_err" is removed. -- Updated ABI: --- Users: user-space SE-LIB, crypto-api, imx-ocotp-ele driver , smw --- IOCTLS: Updated the ioctl --- read/write: -- Correct message header validation. --- segregated handling of the error, while msg header parsing. -- removed TX and RX messages static allocation in state container. -- ran coccicheck: make C=1 CHECK=scripts/coccicheck drivers/firmware/imx/*.* W=1 --- ran on all the patches. - 8/11 firmware: imx: init-fw api exchange on imx93 -- removed TX and RX messages static allocation in state container. -- moved the header file ele_fw_api.h, to driver/firmware/imx/ -- segregated handling of the error, while msg header parsing. - 9/11 firmware: imx: enable trng -- macro "devctx_info", "devctx_dbg" & "devctx_err" is removed. -- will remove this patch, will send this patch later, including RNG and crypto-maintainers. - 10/11 firmware: imx: enclave-fw: add handling for save/restore IMEM region -- Linux comment style fixed. - 10/11(old)(Removed) firmware: imx: enclave api to read-common-fuses -- This API will be used by imx-ocotp-ele.c. -- This patch can be sent later, when the changes to imx-ocotp-ele.c will be sent. -- "Documentation/driver-api/firmware/other_interfaces.rst" will be update for the exported symbols: - read_common_fuses() - get_se_dev() v5 Changes: - 1/7 DT Binding: Disposed off comments from .yaml -- to use "-", instead of "_". -- to use generic name, concatinated with soc-id. -- removed mu-did. -- renamed the ele-mu to se-fw -- moved the file from .../arm/freescale/ to .../firmware/ - 2/7 Changed the .dtsi, as per the comments. -- removed mu-did -- renamed the ele_mu to se-fw. -- updated the compatible string. -- tested the DTB. - 4/7 Changed the .dtsi, as per the comments. -- removed mu-did -- renamed the ele_mu to se-fw. -- updated the compatible string. -- tested the DTB. - 6/7 Changes in driver code: -- replace pr_err with dev_err -- removed export symbols, except one, which will be used in other driver. -- Each API, send-recived based on device reference. -- Divided the commits into smaller commits. - Base Driver -- Added ABI file. - 7/11 (new) firmware: imx: init-fw api exchange on imx93 - 8/11 (new) firmware: imx: enable trng - 9/11 (new) firmware: imx: enclave-fw: add handling for save/restore IMEM region - 10/11 (new) firmware: imx: enclave api to read-common-fuses v4 Changes: - Post internal review, changed the name from "ele-mu" to "se-fw". - Disposed-off comments in the dt-binding file. - Removed the non-hw related dt-bindings from the driver code. - Corrected the File MAINTAINERS for correct name of yaml file. v3 Changes: - update the commit message for documentation. - Fixed dt-binding checking error for file- fsl,ele_mu.yaml - Coverity fixes in the ele_mu.c v2 Changes: - Fixed Kernel Test Bot issues. - Removed ".../devicetree/bindings/mailbox/fsl,muap.txt" The NXP's i.MX EdgeLock Enclave, a HW IP creating an embedded secure enclave within the SoC boundary to enable features like - HSM - SHE - V2X Communicates via message unit with linux kernel. This driver is enables communication ensuring well defined message sequence protocol between Application Core and enclave's firmware. Driver configures multiple misc-device on the MU, for multiple user-space applications can communicate on single MU. It exists on some i.MX processors. e.g. i.MX8ULP, i.MX93 etc. Pankaj Gupta (11): Documentation/firmware: added imx/se-fw to other_interfaces dt-bindings: arm: fsl: add imx-se-fw binding doc arm64: dts: imx8ulp-evk: added nxp secure enclave firmware arm64: dts: imx8ulp-evk: reserved mem-ranges to constrain ele_fw dma-range arm64: dts: imx93-11x11-evk: added nxp secure enclave fw arm64: dts: imx93-11x11-evk: reserved mem-ranges firmware: imx: add driver for NXP EdgeLock Enclave firmware: imx: init-fw api exchange on imx93 firmware: imx: enable trng firmware: imx: enclave-fw: add handling for save/restore IMEM region MAINTAINERS: Added maintainer details Documentation/ABI/testing/se-cdev | 41 + .../bindings/firmware/fsl,imx-se-fw.yaml | 73 + .../driver-api/firmware/other_interfaces.rst | 67 + MAINTAINERS | 10 + arch/arm64/boot/dts/freescale/imx8ulp-evk.dts | 15 + arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 12 +- .../boot/dts/freescale/imx93-11x11-evk.dts | 15 + arch/arm64/boot/dts/freescale/imx93.dtsi | 10 +- drivers/firmware/imx/Kconfig | 21 + drivers/firmware/imx/Makefile | 3 + drivers/firmware/imx/ele_base_msg.c | 271 ++++ drivers/firmware/imx/ele_common.c | 294 ++++ drivers/firmware/imx/ele_common.h | 40 + drivers/firmware/imx/ele_fw_api.c | 118 ++ drivers/firmware/imx/ele_fw_api.h | 26 + drivers/firmware/imx/ele_trng.c | 47 + drivers/firmware/imx/se_fw.c | 1372 +++++++++++++++++ drivers/firmware/imx/se_fw.h | 152 ++ include/linux/firmware/imx/ele_base_msg.h | 67 + include/linux/firmware/imx/ele_mu_ioctl.h | 73 + 20 files changed, 2725 insertions(+), 2 deletions(-) create mode 100644 Documentation/ABI/testing/se-cdev create mode 100644 Documentation/devicetree/bindings/firmware/fsl,imx-se-fw.yaml create mode 100644 drivers/firmware/imx/ele_base_msg.c create mode 100644 drivers/firmware/imx/ele_common.c create mode 100644 drivers/firmware/imx/ele_common.h create mode 100644 drivers/firmware/imx/ele_fw_api.c create mode 100644 drivers/firmware/imx/ele_fw_api.h create mode 100644 drivers/firmware/imx/ele_trng.c create mode 100644 drivers/firmware/imx/se_fw.c create mode 100644 drivers/firmware/imx/se_fw.h create mode 100644 include/linux/firmware/imx/ele_base_msg.h create mode 100644 include/linux/firmware/imx/ele_mu_ioctl.h -- 2.34.1