/' ' Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. ' ' SPDX-License-Identifier: BSD-3-Clause '/ @startuml autonumber "[#]" participant "SDEI client" as EL2 participant EL3 participant "Secure Partition" as SP activate EL2 EL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...) EL3->EL2: success EL2->EL3: **SDEI_EVENT_ENABLE**(ev) EL3->EL2: success EL2->EL3: **SDEI_PE_UNMASK**() EL3->EL2: 1 ... <> ... EL3<--]: **CRITICAL EVENT** activate EL3 #red note over EL3: Critical event triage EL3->SP: dispatch activate SP #salmon note over SP: Critical event handling SP->EL3: done deactivate SP EL3-->EL3: sdei_dispatch_event(ev) note over EL3: Prepare SDEI dispatch EL3->EL2: dispatch activate EL2 #salmon note over EL2: SDEI handler EL2->EL3: **SDEI_EVENT_COMPLETE()** deactivate EL2 note over EL3: Complete SDEI dispatch EL3->EL2: resumes preempted execution deactivate EL3 ... <> ... @enduml