mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-22 04:24:19 +00:00

Change-Id: I679d1499376a524bef1cfc33df995b0a719b5ac8 Signed-off-by: Paul Beesley <paul.beesley@arm.com>
51 lines
1.1 KiB
Text
51 lines
1.1 KiB
Text
/'
|
|
' Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
|
|
'
|
|
' SPDX-License-Identifier: BSD-3-Clause
|
|
'/
|
|
|
|
@startuml
|
|
|
|
autonumber "<b>[#]</b>"
|
|
participant "SDEI client" as EL2
|
|
participant EL3
|
|
participant SDEI
|
|
participant "RAS Driver" as RAS
|
|
|
|
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
|
|
|
|
... <<Business as usual>> ...
|
|
|
|
EL3<--]: **CRITICAL EVENT**
|
|
activate EL3 #red
|
|
note over EL3: Critical event triage
|
|
EL3->RAS: dispatch to handle
|
|
deactivate EL3
|
|
activate RAS #salmon
|
|
note over RAS: Critical event handling
|
|
RAS-->SDEI: sdei_dispatch_event(ev)
|
|
deactivate RAS
|
|
activate SDEI #salmon
|
|
note over SDEI: Prepare SDEI dispatch
|
|
SDEI->EL2: dispatch
|
|
activate EL2 #salmon
|
|
note over EL2: SDEI handler
|
|
EL2->SDEI: **SDEI_EVENT_COMPLETE()**
|
|
deactivate EL2
|
|
note over SDEI: Complete SDEI dispatch
|
|
SDEI-->RAS: return
|
|
deactivate SDEI
|
|
activate RAS #salmon
|
|
RAS->EL3: error handling done
|
|
deactivate RAS
|
|
EL3->EL2: resumes preempted execution
|
|
|
|
... <<Normal execution resumes>> ...
|
|
|
|
@enduml
|