Re: [PATCH v3 5/5] firmware: imx: adds miscdev
From: Randy Dunlap <hidden>
Date: 2024-06-18 21:28:56
Also in:
imx, linux-devicetree, linux-doc, lkml
Hi-- On 6/17/24 12:29 AM, Pankaj Gupta wrote:
quoted hunk ↗ jump to hunk
Adds the driver for communication interface to secure-enclave, for exchanging messages with NXP secure enclave HW IP(s) like EdgeLock Enclave from: - User-Space Applications via character driver. ABI documentation for the NXP secure-enclave driver. 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 Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> --- Documentation/ABI/testing/se-cdev | 42 +++ drivers/firmware/imx/ele_common.c | 153 ++++++++- drivers/firmware/imx/ele_common.h | 4 + drivers/firmware/imx/se_ctrl.c | 694 ++++++++++++++++++++++++++++++++++++++ drivers/firmware/imx/se_ctrl.h | 49 +++ include/uapi/linux/se_ioctl.h | 94 ++++++ 6 files changed, 1034 insertions(+), 2 deletions(-)diff --git a/Documentation/ABI/testing/se-cdev b/Documentation/ABI/testing/se-cdev new file mode 100644 index 000000000000..699525af6b86 --- /dev/null +++ b/Documentation/ABI/testing/se-cdev@@ -0,0 +1,42 @@ +What: /dev/<se>_mu[0-9]+_ch[0-9]+ +Date: May 2024 +KernelVersion: 6.8 +Contact: linux-imx@nxp.com, pankaj.gupta@nxp.com +Description: + NXP offers multiple hardware IP(s) for secure-enclaves like EdgeLock-
for secure enclaves
+ Enclave(ELE), SECO. The character device file-descriptors
file descriptors and what is SECO?
+ /dev/<se>_mu*_ch* are the interface between user-space NXP's secure-
userspace secure
+ enclave shared-library and the kernel driver.
shared library
+ + The ioctl(2)-based ABI is defined and documented in + [include]<linux/firmware/imx/ele_mu_ioctl.h> + ioctl(s) are used primarily for: + - shared memory management + - allocation of I/O buffers + - get mu info
- getting mu info
+ - setting a dev-ctx as receiver that is slave to fw + - get SoC info
- getting SoC info
+ + The following file operations are supported: + + open(2) + Currently the only useful flags are O_RDWR. + + read(2) + Every read() from the opened character device context is waiting on + wakeup_intruptible, that gets set by the registered mailbox callback
typo in that name? or is it something that this patch series introduces?
+ function; indicating a message received from the firmware on message-
function,
+ unit. + + write(2) + Every write() to the opened character device context needs to acquire + mailbox_lock, before sending message on to the message unit.
mailbox_lock before
+ + close(2) + Stops and free up the I/O contexts that was associated
frees up that were associated
+ with the file descriptor. + +Users: https://github.com/nxp-imx/imx-secure-enclave.git, + https://github.com/nxp-imx/imx-smw.git + crypto/skcipher, + drivers/nvmem/imx-ocotp-ele.c
-- ~Randy