| What: /dev/<se>_mu[0-9]+_ch[0-9]+ |
| Date: Mar 2025 |
| KernelVersion: 6.8 |
| 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/<se>_mu*_ch* are the interface between userspace 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 |
| - getting mu info |
| - setting a dev-ctx as receiver to receive all the commands from FW |
| - getting SoC info |
| - send command and receive command response |
| |
| 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 |
| wait_event_interruptible, 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 frees up the I/O contexts 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 |