xref: /arm-trusted-firmware/docs/resources/diagrams/plantuml/sdei_general.puml (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu/'
2*91f16700Schasinglulu ' Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu '
4*91f16700Schasinglulu ' SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu '/
6*91f16700Schasinglulu
7*91f16700Schasinglulu@startuml
8*91f16700Schasinglulu
9*91f16700Schasingluluautonumber "<b>[#]</b>"
10*91f16700Schasingluluparticipant "SDEI client" as EL2
11*91f16700Schasingluluparticipant EL3
12*91f16700Schasingluluparticipant "SDEI interrupt source" as SDEI
13*91f16700Schasinglulu
14*91f16700Schasingluluactivate EL2
15*91f16700SchasingluluEL2->EL3: **SDEI_INTERRUPT_BIND**(irq)
16*91f16700SchasingluluEL3->EL2: event number: ev
17*91f16700SchasingluluEL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...)
18*91f16700SchasingluluEL3->EL2: success
19*91f16700SchasingluluEL2->EL3: **SDEI_EVENT_ENABLE**(ev)
20*91f16700SchasingluluEL3->EL2: success
21*91f16700SchasingluluEL2->EL3: **SDEI_PE_UNMASK**()
22*91f16700SchasingluluEL3->EL2: 1
23*91f16700Schasinglulu
24*91f16700Schasinglulu... <<Business as usual>> ...
25*91f16700Schasinglulu
26*91f16700SchasingluluSDEI-->EL3: SDEI interrupt
27*91f16700Schasingluluactivate SDEI #salmon
28*91f16700Schasingluluactivate EL3 #red
29*91f16700Schasinglulunote over EL3: Prepare SDEI dispatch
30*91f16700SchasingluluEL3->EL2: dispatch
31*91f16700Schasingluluactivate EL2 #salmon
32*91f16700Schasinglulunote over EL2: SDEI handler
33*91f16700SchasingluluEL2->EL3: **SDEI_EVENT_COMPLETE()**
34*91f16700Schasingluludeactivate EL2
35*91f16700Schasinglulunote over EL3: Complete SDEI dispatch
36*91f16700SchasingluluEL3-->SDEI: EOI
37*91f16700Schasingluludeactivate SDEI
38*91f16700SchasingluluEL3->EL2: resumes preempted execution
39*91f16700Schasingluludeactivate EL3
40*91f16700Schasinglulu
41*91f16700Schasinglulu... <<Normal execution resumes>> ...
42*91f16700Schasinglulu
43*91f16700Schasinglulu@enduml
44