blob: 90ff23cce6485e39beb0f9dbaaa2bcbf716f09a4 [file] [log] [blame]
Jeenu Viswambharandb5e12e2017-10-18 14:35:20 +01001/'
Jeenu Viswambharan8b7e6bc2018-02-16 12:07:48 +00002 ' Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
Jeenu Viswambharandb5e12e2017-10-18 14:35:20 +01003 '
4 ' SPDX-License-Identifier: BSD-3-Clause
5 '/
6
7@startuml
8
9autonumber "<b>[#]</b>"
10participant "SDEI client" as EL2
11participant EL3
Jeenu Viswambharan8b7e6bc2018-02-16 12:07:48 +000012participant SDEI
13participant "RAS Driver" as RAS
Jeenu Viswambharandb5e12e2017-10-18 14:35:20 +010014
15activate EL2
16EL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...)
17EL3->EL2: success
18EL2->EL3: **SDEI_EVENT_ENABLE**(ev)
19EL3->EL2: success
20EL2->EL3: **SDEI_PE_UNMASK**()
21EL3->EL2: 1
22
23... <<Business as usual>> ...
24
25EL3<--]: **CRITICAL EVENT**
26activate EL3 #red
27note over EL3: Critical event triage
Jeenu Viswambharan8b7e6bc2018-02-16 12:07:48 +000028EL3->RAS: dispatch to handle
29deactivate EL3
30activate RAS #salmon
31note over RAS: Critical event handling
32RAS-->SDEI: sdei_dispatch_event(ev)
33deactivate RAS
34activate SDEI #salmon
35note over SDEI: Prepare SDEI dispatch
36SDEI->EL2: dispatch
Jeenu Viswambharandb5e12e2017-10-18 14:35:20 +010037activate EL2 #salmon
38note over EL2: SDEI handler
Jeenu Viswambharan8b7e6bc2018-02-16 12:07:48 +000039EL2->SDEI: **SDEI_EVENT_COMPLETE()**
Jeenu Viswambharandb5e12e2017-10-18 14:35:20 +010040deactivate EL2
Jeenu Viswambharan8b7e6bc2018-02-16 12:07:48 +000041note over SDEI: Complete SDEI dispatch
42SDEI-->RAS: return
43deactivate SDEI
44activate RAS #salmon
45RAS->EL3: error handling done
46deactivate RAS
Jeenu Viswambharandb5e12e2017-10-18 14:35:20 +010047EL3->EL2: resumes preempted execution
Jeenu Viswambharandb5e12e2017-10-18 14:35:20 +010048
49... <<Normal execution resumes>> ...
50
51@enduml