docs: staging/tee.rst: add a section on OP-TEE notifications
Adds a section on notifications used by OP-TEE, synchronous and asynchronous. Reviewed-by: Sumit Garg <sumit.garg@linaro.org> Acked-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
This commit is contained in:
parent
fa55b7dcdc
commit
63d5bc420f
|
@ -184,6 +184,36 @@ order to support device enumeration. In other words, OP-TEE driver invokes this
|
||||||
application to retrieve a list of Trusted Applications which can be registered
|
application to retrieve a list of Trusted Applications which can be registered
|
||||||
as devices on the TEE bus.
|
as devices on the TEE bus.
|
||||||
|
|
||||||
|
OP-TEE notifications
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
There are two kinds of notifications that secure world can use to make
|
||||||
|
normal world aware of some event.
|
||||||
|
|
||||||
|
1. Synchronous notifications delivered with ``OPTEE_RPC_CMD_NOTIFICATION``
|
||||||
|
using the ``OPTEE_RPC_NOTIFICATION_SEND`` parameter.
|
||||||
|
2. Asynchronous notifications delivered with a combination of a non-secure
|
||||||
|
edge-triggered interrupt and a fast call from the non-secure interrupt
|
||||||
|
handler.
|
||||||
|
|
||||||
|
Synchronous notifications are limited by depending on RPC for delivery,
|
||||||
|
this is only usable when secure world is entered with a yielding call via
|
||||||
|
``OPTEE_SMC_CALL_WITH_ARG``. This excludes such notifications from secure
|
||||||
|
world interrupt handlers.
|
||||||
|
|
||||||
|
An asynchronous notification is delivered via a non-secure edge-triggered
|
||||||
|
interrupt to an interrupt handler registered in the OP-TEE driver. The
|
||||||
|
actual notification value are retrieved with the fast call
|
||||||
|
``OPTEE_SMC_GET_ASYNC_NOTIF_VALUE``. Note that one interrupt can represent
|
||||||
|
multiple notifications.
|
||||||
|
|
||||||
|
One notification value ``OPTEE_SMC_ASYNC_NOTIF_VALUE_DO_BOTTOM_HALF`` has a
|
||||||
|
special meaning. When this value is received it means that normal world is
|
||||||
|
supposed to make a yielding call ``OPTEE_MSG_CMD_DO_BOTTOM_HALF``. This
|
||||||
|
call is done from the thread assisting the interrupt handler. This is a
|
||||||
|
building block for OP-TEE OS in secure world to implement the top half and
|
||||||
|
bottom half style of device drivers.
|
||||||
|
|
||||||
AMD-TEE driver
|
AMD-TEE driver
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue