blob: c80fcd1180cf7e71d3b60270cffc56a9c01c4695 [file] [log] [blame]
Jeenu Viswambharandb5e12e2017-10-18 14:35:20 +01001/'
2 ' Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3 '
4 ' SPDX-License-Identifier: BSD-3-Clause
5 '/
6
7@startuml
8
9autonumber "<b>[#]</b>"
10participant "SDEI client" as EL2
11participant EL3
Jeenu Viswambharan9a62fd12017-11-16 12:34:15 +000012participant "Secure Partition" as SP
Jeenu Viswambharandb5e12e2017-10-18 14:35:20 +010013
14activate EL2
15EL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...)
16EL3->EL2: success
17EL2->EL3: **SDEI_EVENT_ENABLE**(ev)
18EL3->EL2: success
19EL2->EL3: **SDEI_PE_UNMASK**()
20EL3->EL2: 1
21
22... <<Business as usual>> ...
23
24EL3<--]: **CRITICAL EVENT**
25activate EL3 #red
26note over EL3: Critical event triage
Jeenu Viswambharan9a62fd12017-11-16 12:34:15 +000027EL3->SP: dispatch
28activate SP #salmon
29note over SP: Critical event handling
30SP->EL3: done
31deactivate SP
Jeenu Viswambharandb5e12e2017-10-18 14:35:20 +010032EL3-->EL3: sdei_dispatch_event(ev)
33note over EL3: Prepare SDEI dispatch
34EL3->EL2: dispatch
35activate EL2 #salmon
36note over EL2: SDEI handler
37EL2->EL3: **SDEI_EVENT_COMPLETE()**
38deactivate EL2
39note over EL3: Complete SDEI dispatch
40EL3->EL2: resumes preempted execution
41deactivate EL3
42
43... <<Normal execution resumes>> ...
44
45@enduml