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.


