mbox series

[v7,00/11] firmware: imx: NXP Secure-Enclave FW Driver

Message ID 20231030095849.3456820-1-pankaj.gupta@nxp.com
Headers show
Series firmware: imx: NXP Secure-Enclave FW Driver | expand

Message

Pankaj Gupta Oct. 30, 2023, 9:58 a.m. UTC
V7 Changes:
- 2/11 DT Binding: Disposed off comments from .yaml
        -- added | to preserve formating.
        -- removed extra spaces, restricting under 80 col.
	-- replaced the "fsl,sram" property, with standard property "sram".
	-- Added details about usage of sram.
	-- removed the property "mu_id".
	-- Added allOf:if:then: for reserved memory.
	-- removed label.

- 3,4,5,6/11: DTSI changes:
	-- removed the property "mu_id".
	-- rename node-name & label

- 7/11 firmware: imx: add driver for NXP EdgeLock Enclave:
	-- Removed dev_err for the cases of failure in memory allocation.
        -- For others, coverted dev_err to dev_dbg.
        -- Updated the commit msg about the details for userspace lib


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@intel.com> 
		Closes:https://lore.kernel.org/oe-kbuild-all/202304120902.bP52A56z-lkp@intel.com
	-- 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      |   83 +
 .../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    |   10 +-
 .../boot/dts/freescale/imx93-11x11-evk.dts    |   15 +
 arch/arm64/boot/dts/freescale/imx93.dtsi      |    8 +-
 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                  | 1376 +++++++++++++++++
 drivers/firmware/imx/se_fw.h                  |  154 ++
 include/linux/firmware/imx/ele_base_msg.h     |   67 +
 include/linux/firmware/imx/ele_mu_ioctl.h     |   74 +
 20 files changed, 2738 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

Comments

Krzysztof Kozlowski Oct. 30, 2023, 5:52 p.m. UTC | #1
On 30/10/2023 10:58, Pankaj Gupta wrote:
> Added support for NXP secure enclave called EdgeLock Enclave
> firmware (se-fw) for imx8ulp-evk.
> 
> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8ulp.dtsi b/arch/arm64/boot/dts/freescale/imx8ulp.dtsi
> index 946f2b68d16f..7b66de3a392d 100644
> --- a/arch/arm64/boot/dts/freescale/imx8ulp.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8ulp.dtsi
> @@ -152,7 +152,7 @@ sosc: clock-sosc {
>  		#clock-cells = <0>;
>  	};
>  
> -	sram@2201f000 {
> +	sram0: sram@2201f000 {
>  		compatible = "mmio-sram";
>  		reg = <0x0 0x2201f000 0x0 0x1000>;
>  
> @@ -578,4 +578,12 @@ gpiod: gpio@2e200080 {
>  			gpio-ranges = <&iomuxc1 0 0 24>;
>  		};
>  	};
> +
> +	ele_fw2: se-fw2 {

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation


Best regards,
Krzysztof
Krzysztof Kozlowski Oct. 30, 2023, 5:52 p.m. UTC | #2
On 30/10/2023 10:58, Pankaj Gupta wrote:
> Added support for NXP secure enclave called EdgeLock Enclave
> firmware (se-fw) for imx93-11x11-evk.
> 
> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/imx93.dtsi | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
> index dcf6e4846ac9..197de680fd27 100644
> --- a/arch/arm64/boot/dts/freescale/imx93.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
> @@ -1,6 +1,6 @@
>  // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>  /*
> - * Copyright 2022 NXP
> + * Copyright 2022-2023 NXP
>   */
>  
>  #include <dt-bindings/clock/imx93-clock.h>
> @@ -925,4 +925,10 @@ ddr-pmu@4e300dc0 {
>  			interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
>  		};
>  	};
> +
> +	ele_fw2: se-fw2 {

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation

Why do you even need label?

Best regards,
Krzysztof
Krzysztof Kozlowski Oct. 30, 2023, 5:55 p.m. UTC | #3
On 30/10/2023 10:58, Pankaj Gupta wrote:
> EdgeLock Enclave are has a hardware limitation of restricted access
> to the DDR memory range:
> - 0x80000000  0x9FFFFFFF
> 
> ELE-MU driver requireis 1MB of memory. In this patch, reserving
> 1MB of ddr memory region from the lower 32-bit range.
> 
> Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
> index cafd39130eb8..bcb4ae931c64 100644
> --- a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
> @@ -7,6 +7,10 @@
>  
>  #include "imx93.dtsi"
>  
> +&ele_fw2 {

OK, this explains the label in imx93.dtsi, but then node in the
imx93.dtsi is incomplete and should be disabled. Everything which is
incomplete should be disabled in DTSI by default. At v7 of your patchset
I really would expect some internal review happening.

> +	memory-region = <&ele_reserved>;
> +};
> +
>  / {
>  	model = "NXP i.MX93 11X11 EVK board";
>  	compatible = "fsl,imx93-11x11-evk", "fsl,imx93";
> @@ -68,6 +72,17 @@ reg_vref_1v8: regulator-adc-vref {
>  		regulator-max-microvolt = <1800000>;
>  	};
>  
> +	reserved-memory {
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +		ele_reserved: ele-reserved@a4120000 {

Names in reserved memory should match the purpose, so "reserved" is here
redundant. Just "ele".

> +			compatible = "shared-dma-pool";
> +			reg = <0 0xa4120000 0 0x100000>;
> +			no-map;
> +		};
> +	};
> +
>  	reg_usdhc2_vmmc: regulator-usdhc2 {
>  		compatible = "regulator-fixed";
>  		pinctrl-names = "default";

Best regards,
Krzysztof
Krzysztof Kozlowski Oct. 30, 2023, 5:57 p.m. UTC | #4
On 30/10/2023 10:58, Pankaj Gupta wrote:
> Documented i.MX SoC's Service layer and C_DEV driver for SoC(s)
> enabled with hardware IP for secure-enclaves like:
> - edgelock enclave on i.MX93 & i.MX8ULP
> 
> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com>

I asked to explain user-space tools as well. I don't see them
mentioned/documented in none of the commits.

Best regards,
Krzysztof
Krzysztof Kozlowski Oct. 30, 2023, 5:59 p.m. UTC | #5
On 30/10/2023 18:57, Krzysztof Kozlowski wrote:
> On 30/10/2023 10:58, Pankaj Gupta wrote:
>> Documented i.MX SoC's Service layer and C_DEV driver for SoC(s)
>> enabled with hardware IP for secure-enclaves like:
>> - edgelock enclave on i.MX93 & i.MX8ULP
>>
>> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com>
> 
> I asked to explain user-space tools as well. I don't see them
> mentioned/documented in none of the commits.

Hm, I lost somehow or I did not get your patch #7, so maybe that's the
place where they are mentioned.

Best regards,
Krzysztof
Krzysztof Kozlowski Oct. 30, 2023, 6:02 p.m. UTC | #6
On 30/10/2023 10:58, Pankaj Gupta wrote:
> The Edgelock Enclave , is the secure enclave embedded in the SoC
> to support the features like HSM, SHE & V2X, using message based
> communication channel.
> 
> ELE FW communicates on a dedicated MU with application core where
> kernel is running. It exists on specific i.MX processors. e.g.
> i.MX8ULP, i.MX93.
> 
> User-space library using this driver:
> - i.MX Secure Enclave library:
>   -- URL: https://github.com/nxp-imx/imx-secure-enclave.git,
> - i.MX Secure Middle-Ware:
>   -- URL: https://github.com/nxp-imx/imx-smw.git

OK, I got your patch #7. Thanks for documenting the user-space.

> 
> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com>

...

> diff --git a/drivers/firmware/imx/ele_common.c b/drivers/firmware/imx/ele_common.c
> new file mode 100644
> index 000000000000..4410245a19ec
> --- /dev/null
> +++ b/drivers/firmware/imx/ele_common.c
> @@ -0,0 +1,139 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2023 NXP
> + */
> +
> +#include "ele_common.h"
> +#include "se_fw.h"
> +
> +int imx_se_alloc_tx_rx_buf(struct ele_mu_priv *priv)
> +{
> +	int ret = 0;
> +
> +	priv->tx_msg = devm_kzalloc(priv->dev,
> +				    sizeof(*priv->tx_msg),
> +				    GFP_KERNEL);
> +	if (!priv->tx_msg) {
> +		ret = -ENOMEM;
> +		dev_err(priv->dev, "Fail allocate mem for tx_msg.\n");

No improvements. I assume rest of feedback could still be ignored. I am
not going to check. It's your duty to implement the comments, not mine
to check every line whether you did it or not. Trust does not work like
that.

Best regards,
Krzysztof
Pankaj Gupta March 15, 2024, 12:23 p.m. UTC | #7
Hi all,

We took a step back. 
We are doing internal review ongoing on this patch-set.

Thanks everybody helping me improving the patch series.
Thanks. Krzysztof for your guidance for the entire patch-set.

Regards
Pankaj

> -----Original Message-----
> From: Pankaj Gupta <pankaj.gupta@nxp.com>
> Sent: Monday, October 30, 2023 3:29 PM
> To: shawnguo@kernel.org; s.hauer@pengutronix.de;
> kernel@pengutronix.de; clin@suse.com; conor+dt@kernel.org;
> pierre.gondois@arm.com; festevam@gmail.com; dl-linux-imx <linux-
> imx@nxp.com>; davem@davemloft.net; robh+dt@kernel.org;
> krzysztof.kozlowski+dt@linaro.org; linux-arm-kernel@lists.infradead.org;
> devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; Gaurav Jain
> <gaurav.jain@nxp.com>; alexander.stein@ew.tq-group.com; Varun Sethi
> <V.Sethi@nxp.com>
> Cc: Pankaj Gupta <pankaj.gupta@nxp.com>
> Subject: [PATCH v7 00/11] firmware: imx: NXP Secure-Enclave FW Driver
> 
> V7 Changes:
> - 2/11 DT Binding: Disposed off comments from .yaml
>         -- added | to preserve formating.
>         -- removed extra spaces, restricting under 80 col.
> 	-- replaced the "fsl,sram" property, with standard property "sram".
> 	-- Added details about usage of sram.
> 	-- removed the property "mu_id".
> 	-- Added allOf:if:then: for reserved memory.
> 	-- removed label.
> 
> - 3,4,5,6/11: DTSI changes:
> 	-- removed the property "mu_id".
> 	-- rename node-name & label
> 
> - 7/11 firmware: imx: add driver for NXP EdgeLock Enclave:
> 	-- Removed dev_err for the cases of failure in memory allocation.
>         -- For others, coverted dev_err to dev_dbg.
>         -- Updated the commit msg about the details for userspace lib
> 
> 
> 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@intel.com>
> 		Closes:https://lore.kernel.org/oe-kbuild-
> all/202304120902.bP52A56z-lkp@intel.com
> 	-- 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      |   83 +
>  .../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    |   10 +-
>  .../boot/dts/freescale/imx93-11x11-evk.dts    |   15 +
>  arch/arm64/boot/dts/freescale/imx93.dtsi      |    8 +-
>  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                  | 1376 +++++++++++++++++
>  drivers/firmware/imx/se_fw.h                  |  154 ++
>  include/linux/firmware/imx/ele_base_msg.h     |   67 +
>  include/linux/firmware/imx/ele_mu_ioctl.h     |   74 +
>  20 files changed, 2738 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
>