Jeenu Viswambharan | db5e12e | 2017-10-18 14:35:20 +0100 | [diff] [blame] | 1 | /' |
| 2 | ' Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. |
| 3 | ' |
| 4 | ' SPDX-License-Identifier: BSD-3-Clause |
| 5 | '/ |
| 6 | |
| 7 | @startuml |
| 8 | |
| 9 | autonumber "<b>[#]</b>" |
| 10 | participant "SDEI client" as EL2 |
| 11 | participant EL3 |
Jeenu Viswambharan | 9a62fd1 | 2017-11-16 12:34:15 +0000 | [diff] [blame] | 12 | participant "Secure Partition" as SP |
Jeenu Viswambharan | db5e12e | 2017-10-18 14:35:20 +0100 | [diff] [blame] | 13 | |
| 14 | activate EL2 |
| 15 | EL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...) |
| 16 | EL3->EL2: success |
| 17 | EL2->EL3: **SDEI_EVENT_ENABLE**(ev) |
| 18 | EL3->EL2: success |
| 19 | EL2->EL3: **SDEI_PE_UNMASK**() |
| 20 | EL3->EL2: 1 |
| 21 | |
| 22 | ... <<Business as usual>> ... |
| 23 | |
| 24 | EL3<--]: **CRITICAL EVENT** |
| 25 | activate EL3 #red |
| 26 | note over EL3: Critical event triage |
Jeenu Viswambharan | 9a62fd1 | 2017-11-16 12:34:15 +0000 | [diff] [blame] | 27 | EL3->SP: dispatch |
| 28 | activate SP #salmon |
| 29 | note over SP: Critical event handling |
| 30 | SP->EL3: done |
| 31 | deactivate SP |
Jeenu Viswambharan | db5e12e | 2017-10-18 14:35:20 +0100 | [diff] [blame] | 32 | EL3-->EL3: sdei_dispatch_event(ev) |
| 33 | note over EL3: Prepare SDEI dispatch |
| 34 | EL3->EL2: dispatch |
| 35 | activate EL2 #salmon |
| 36 | note over EL2: SDEI handler |
| 37 | EL2->EL3: **SDEI_EVENT_COMPLETE()** |
| 38 | deactivate EL2 |
| 39 | note over EL3: Complete SDEI dispatch |
| 40 | EL3->EL2: resumes preempted execution |
| 41 | deactivate EL3 |
| 42 | |
| 43 | ... <<Normal execution resumes>> ... |
| 44 | |
| 45 | @enduml |