linux-imx/Documentation/ABI/testing/se-cdev
Pankaj Gupta 26c37ec371 LF-10329: firmware: imx: add driver for NXP EdgeLock Enclave
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.

Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com>
2023-11-12 22:26:27 +08:00

1.4 KiB

What: /dev/_mu[0-9]+_ch[0-9]+ Date: August 2023 KernelVersion: 6.6 Contact: linux-imx@nxp.com, pankaj.gupta@nxp.com Description: NXP offers multiple hardware IP(s) for secure-enclaves like EdgeLock- Enclave(ELE), SECO. The character device file-descriptors /dev/_mu*_ch* are the interface between user-space NXP's secure- enclave shared-library and the kernel driver.

	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
		- setting a dev-ctx as receiver that is slave to fw

	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
	  function; indicating a message received from the firmware on message-
	  unit.

	write(2)
	  Every write() to the opened character device context needs to acquire
	  mailbox_lock, before sending message on to the message unit.

	close(2)
	  Stops and free up the I/O contexts that was 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