Jeenu Viswambharan | db5e12e | 2017-10-18 14:35:20 +0100 | [diff] [blame] | 1 | /' |
Jeenu Viswambharan | 8b7e6bc | 2018-02-16 12:07:48 +0000 | [diff] [blame] | 2 | ' Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. |
Jeenu Viswambharan | db5e12e | 2017-10-18 14:35:20 +0100 | [diff] [blame] | 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 | 8b7e6bc | 2018-02-16 12:07:48 +0000 | [diff] [blame] | 12 | participant SDEI |
| 13 | participant "RAS Driver" as RAS |
Jeenu Viswambharan | db5e12e | 2017-10-18 14:35:20 +0100 | [diff] [blame] | 14 | |
| 15 | activate EL2 |
| 16 | EL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...) |
| 17 | EL3->EL2: success |
| 18 | EL2->EL3: **SDEI_EVENT_ENABLE**(ev) |
| 19 | EL3->EL2: success |
| 20 | EL2->EL3: **SDEI_PE_UNMASK**() |
| 21 | EL3->EL2: 1 |
| 22 | |
| 23 | ... <<Business as usual>> ... |
| 24 | |
| 25 | EL3<--]: **CRITICAL EVENT** |
| 26 | activate EL3 #red |
| 27 | note over EL3: Critical event triage |
Jeenu Viswambharan | 8b7e6bc | 2018-02-16 12:07:48 +0000 | [diff] [blame] | 28 | EL3->RAS: dispatch to handle |
| 29 | deactivate EL3 |
| 30 | activate RAS #salmon |
| 31 | note over RAS: Critical event handling |
| 32 | RAS-->SDEI: sdei_dispatch_event(ev) |
| 33 | deactivate RAS |
| 34 | activate SDEI #salmon |
| 35 | note over SDEI: Prepare SDEI dispatch |
| 36 | SDEI->EL2: dispatch |
Jeenu Viswambharan | db5e12e | 2017-10-18 14:35:20 +0100 | [diff] [blame] | 37 | activate EL2 #salmon |
| 38 | note over EL2: SDEI handler |
Jeenu Viswambharan | 8b7e6bc | 2018-02-16 12:07:48 +0000 | [diff] [blame] | 39 | EL2->SDEI: **SDEI_EVENT_COMPLETE()** |
Jeenu Viswambharan | db5e12e | 2017-10-18 14:35:20 +0100 | [diff] [blame] | 40 | deactivate EL2 |
Jeenu Viswambharan | 8b7e6bc | 2018-02-16 12:07:48 +0000 | [diff] [blame] | 41 | note over SDEI: Complete SDEI dispatch |
| 42 | SDEI-->RAS: return |
| 43 | deactivate SDEI |
| 44 | activate RAS #salmon |
| 45 | RAS->EL3: error handling done |
| 46 | deactivate RAS |
Jeenu Viswambharan | db5e12e | 2017-10-18 14:35:20 +0100 | [diff] [blame] | 47 | EL3->EL2: resumes preempted execution |
Jeenu Viswambharan | db5e12e | 2017-10-18 14:35:20 +0100 | [diff] [blame] | 48 | |
| 49 | ... <<Normal execution resumes>> ... |
| 50 | |
| 51 | @enduml |