123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /'
- ' 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
|