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 |
| 12 | participant "SDEI interrupt source" as SDEI |
| 13 | |
| 14 | activate EL2 |
| 15 | EL2->EL3: **SDEI_INTERRUPT_BIND**(irq) |
| 16 | EL3->EL2: event number: ev |
| 17 | EL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...) |
| 18 | EL3->EL2: success |
| 19 | EL2->EL3: **SDEI_EVENT_ENABLE**(ev) |
| 20 | EL3->EL2: success |
| 21 | EL2->EL3: **SDEI_PE_UNMASK**() |
| 22 | EL3->EL2: 1 |
| 23 | |
| 24 | ... <<Business as usual>> ... |
| 25 | |
| 26 | SDEI-->EL3: SDEI interrupt |
| 27 | activate SDEI #salmon |
| 28 | activate EL3 #red |
| 29 | note over EL3: Prepare SDEI dispatch |
| 30 | EL3->EL2: dispatch |
| 31 | activate EL2 #salmon |
| 32 | note over EL2: SDEI handler |
| 33 | EL2->EL3: **SDEI_EVENT_COMPLETE()** |
| 34 | deactivate EL2 |
| 35 | note over EL3: Complete SDEI dispatch |
| 36 | EL3-->SDEI: EOI |
| 37 | deactivate SDEI |
| 38 | EL3->EL2: resumes preempted execution |
| 39 | deactivate EL3 |
| 40 | |
| 41 | ... <<Normal execution resumes>> ... |
| 42 | |
| 43 | @enduml |