Introduction: ============= Invoke driver is a misc driver which helps communication between non secure and secure world. Invoke driver communicates with secure side using SCM driver. To use invoke driver, open must be called on invoke device i.e. /dev/invoke. Invoke driver exposes only one IOCTL invoke which passes userspace request to TZ. SW Architecture =============== Following is SW stack for Invoke driver. +++++++++++++++++++++++++++++++++++++++++ + Applications + +++++++++++++++++++++++++++++++++++++++++ + System Layer + +++++++++++++++++++++++++++++++++++++++++ + Kernel + + +++++++++++++++++++ + + + Invoke driver + + + +++++++++++++++++++ + + + SCM Driver + + +++++++++++++++++++++++++++++++++++++++++ || || \/ +++++++++++++++++++++++++++++++++++++++++ + Trust Zone + + +++++++++++ +++++++++++ + + + TZ App1 + + TZ App2 + + +++++++++++++++++++++++++++++++++++++++++ Interfaces ========== Invoke driver exposes INVOKE_IOCTL_INVOKE_REQ IOCTL for userspace to communicate with driver. More details of IOCTL are avilable in corresponding header file. Driver Parameters ================= This driver is built and statically linked into the kernel; therefore, there are no module parameters supported by this driver. There are no kernel command line parameters supported by this driver. Power Management ================ TBD Dependencies ============ Invoke driver depends on SCM driver to communicate with TZ.