[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20231030095849.3456820-1-pankaj.gupta@nxp.com>
Date: Mon, 30 Oct 2023 15:28:38 +0530
From: Pankaj Gupta <pankaj.gupta@....com>
To: shawnguo@...nel.org, s.hauer@...gutronix.de, kernel@...gutronix.de,
clin@...e.com, conor+dt@...nel.org, pierre.gondois@....com,
festevam@...il.com, linux-imx@....com, davem@...emloft.net,
robh+dt@...nel.org, krzysztof.kozlowski+dt@...aro.org,
linux-arm-kernel@...ts.infradead.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, gaurav.jain@....com,
alexander.stein@...tq-group.com, V.Sethi@....com
Cc: Pankaj Gupta <pankaj.gupta@....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@...el.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
Powered by blists - more mailing lists