xref: /rk3399_ARM-atf/docs/resources/diagrams/plantuml/sdei_explicit_dispatch.puml (revision ced1711297347f24fee45e75e73c7767507a0982)
1*a2c320a8SPaul Beesley/'
2*a2c320a8SPaul Beesley ' Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
3*a2c320a8SPaul Beesley '
4*a2c320a8SPaul Beesley ' SPDX-License-Identifier: BSD-3-Clause
5*a2c320a8SPaul Beesley '/
6*a2c320a8SPaul Beesley
7*a2c320a8SPaul Beesley@startuml
8*a2c320a8SPaul Beesley
9*a2c320a8SPaul Beesleyautonumber "<b>[#]</b>"
10*a2c320a8SPaul Beesleyparticipant "SDEI client" as EL2
11*a2c320a8SPaul Beesleyparticipant EL3
12*a2c320a8SPaul Beesleyparticipant SDEI
13*a2c320a8SPaul Beesleyparticipant "RAS Driver" as RAS
14*a2c320a8SPaul Beesley
15*a2c320a8SPaul Beesleyactivate EL2
16*a2c320a8SPaul BeesleyEL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...)
17*a2c320a8SPaul BeesleyEL3->EL2: success
18*a2c320a8SPaul BeesleyEL2->EL3: **SDEI_EVENT_ENABLE**(ev)
19*a2c320a8SPaul BeesleyEL3->EL2: success
20*a2c320a8SPaul BeesleyEL2->EL3: **SDEI_PE_UNMASK**()
21*a2c320a8SPaul BeesleyEL3->EL2: 1
22*a2c320a8SPaul Beesley
23*a2c320a8SPaul Beesley... <<Business as usual>> ...
24*a2c320a8SPaul Beesley
25*a2c320a8SPaul BeesleyEL3<--]: **CRITICAL EVENT**
26*a2c320a8SPaul Beesleyactivate EL3 #red
27*a2c320a8SPaul Beesleynote over EL3: Critical event triage
28*a2c320a8SPaul BeesleyEL3->RAS: dispatch to handle
29*a2c320a8SPaul Beesleydeactivate EL3
30*a2c320a8SPaul Beesleyactivate RAS #salmon
31*a2c320a8SPaul Beesleynote over RAS: Critical event handling
32*a2c320a8SPaul BeesleyRAS-->SDEI: sdei_dispatch_event(ev)
33*a2c320a8SPaul Beesleydeactivate RAS
34*a2c320a8SPaul Beesleyactivate SDEI #salmon
35*a2c320a8SPaul Beesleynote over SDEI: Prepare SDEI dispatch
36*a2c320a8SPaul BeesleySDEI->EL2: dispatch
37*a2c320a8SPaul Beesleyactivate EL2 #salmon
38*a2c320a8SPaul Beesleynote over EL2: SDEI handler
39*a2c320a8SPaul BeesleyEL2->SDEI: **SDEI_EVENT_COMPLETE()**
40*a2c320a8SPaul Beesleydeactivate EL2
41*a2c320a8SPaul Beesleynote over SDEI: Complete SDEI dispatch
42*a2c320a8SPaul BeesleySDEI-->RAS: return
43*a2c320a8SPaul Beesleydeactivate SDEI
44*a2c320a8SPaul Beesleyactivate RAS #salmon
45*a2c320a8SPaul BeesleyRAS->EL3: error handling done
46*a2c320a8SPaul Beesleydeactivate RAS
47*a2c320a8SPaul BeesleyEL3->EL2: resumes preempted execution
48*a2c320a8SPaul Beesley
49*a2c320a8SPaul Beesley... <<Normal execution resumes>> ...
50*a2c320a8SPaul Beesley
51*a2c320a8SPaul Beesley@enduml
52