From 1a0f8f3957a371b05a147cbfbd8826fa14ae407f Mon Sep 17 00:00:00 2001 From: Jeenu Viswambharan Date: Thu, 16 Nov 2017 12:34:15 +0000 Subject: SDEI: Update doc to clarify delegation The explicit event dispatch sequence currently depicts handling done in Secure EL1, although further error handling is typically done inside a Secure Partition. Clarify the sequence diagram to that effect. Change-Id: I53deedc6d5ee0706626890067950c2c541a62c78 Signed-off-by: Jeenu Viswambharan --- docs/sdei.rst | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'docs/sdei.rst') diff --git a/docs/sdei.rst b/docs/sdei.rst index 0731a5a8..a67b7248 100644 --- a/docs/sdei.rst +++ b/docs/sdei.rst @@ -232,13 +232,20 @@ bound or dynamic events can't be explicitly dispatched (see the section below). At a later point in time, a critical event [#critical-event]_ is trapped into EL3 [7]. EL3 performs a first-level triage of the event, and decides to dispatch -to Secure EL1 for further handling [8]. The dispatch completes, but intends to -involve Non-secure world in further handling, and therefore decides to -explicitly dispatch an event [10] (which the client had already registered for -[1]). The rest of the sequence is similar to that in the `general SDEI -dispatch`_: the requested event is dispatched to the client (assuming all the -conditions are met), and when the handler completes, the preempted execution -resumes. +to a Secure Partition [#secpart]_ for further handling [8]. The dispatch +completes, but intends to involve Non-secure world in further handling, and +therefore decides to explicitly dispatch an event [10] (which the client had +already registered for [1]). The rest of the sequence is similar to that in the +`general SDEI dispatch`_: the requested event is dispatched to the client +(assuming all the conditions are met), and when the handler completes, the +preempted execution resumes. + +.. [#critical-event] Examples of critical event are *SError*, *Synchronous + External Abort*, *Fault Handling interrupt*, or *Error + Recovery interrupt* from one of RAS nodes in the system. + +.. [#secpart] Dispatching to Secure Partition involves *Secure Partition + Manager*, which isn't depicted in the sequence. Conditions for event dispatch ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -295,10 +302,6 @@ dispatcher: context is resumed (as indicated by the ``preempted_sec_state`` parameter of the API). -.. [#critical-event] Examples of critical event are *SError*, *Synchronous - External Abort*, *Fault Handling interrupt*, or *Error - Recovery interrupt* from one of RAS nodes in the system. - Porting requirements -------------------- -- cgit v1.2.3