Re: [PATCH v3 5/5] firmware: imx: adds miscdev

Randy Dunlap
2024-06-18T21:28:56Z

Hi--

On 6/17/24 12:29 AM, Pankaj Gupta wrote:
> 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