1/'
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
12participant "SDEI interrupt source" as SDEI
13
14activate EL2
15EL2->EL3: **SDEI_INTERRUPT_BIND**(irq)
16EL3->EL2: event number: ev
17EL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...)
18EL3->EL2: success
19EL2->EL3: **SDEI_EVENT_ENABLE**(ev)
20EL3->EL2: success
21EL2->EL3: **SDEI_PE_UNMASK**()
22EL3->EL2: 1
23
24... <<Business as usual>> ...
25
26SDEI-->EL3: SDEI interrupt
27activate SDEI #salmon
28activate EL3 #red
29note over EL3: Prepare SDEI dispatch
30EL3->EL2: dispatch
31activate EL2 #salmon
32note over EL2: SDEI handler
33EL2->EL3: **SDEI_EVENT_COMPLETE()**
34deactivate EL2
35note over EL3: Complete SDEI dispatch
36EL3-->SDEI: EOI
37deactivate SDEI
38EL3->EL2: resumes preempted execution
39deactivate EL3
40
41... <<Normal execution resumes>> ...
42
43@enduml
44