1*91f16700Schasinglulu/' 2*91f16700Schasinglulu ' Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu ' 4*91f16700Schasinglulu ' SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu '/ 6*91f16700Schasinglulu 7*91f16700Schasinglulu@startuml 8*91f16700Schasinglulu 9*91f16700Schasingluluautonumber "<b>[#]</b>" 10*91f16700Schasingluluparticipant "SDEI client" as EL2 11*91f16700Schasingluluparticipant EL3 12*91f16700Schasingluluparticipant "SDEI interrupt source" as SDEI 13*91f16700Schasinglulu 14*91f16700Schasingluluactivate EL2 15*91f16700SchasingluluEL2->EL3: **SDEI_INTERRUPT_BIND**(irq) 16*91f16700SchasingluluEL3->EL2: event number: ev 17*91f16700SchasingluluEL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...) 18*91f16700SchasingluluEL3->EL2: success 19*91f16700SchasingluluEL2->EL3: **SDEI_EVENT_ENABLE**(ev) 20*91f16700SchasingluluEL3->EL2: success 21*91f16700SchasingluluEL2->EL3: **SDEI_PE_UNMASK**() 22*91f16700SchasingluluEL3->EL2: 1 23*91f16700Schasinglulu 24*91f16700Schasinglulu... <<Business as usual>> ... 25*91f16700Schasinglulu 26*91f16700SchasingluluSDEI-->EL3: SDEI interrupt 27*91f16700Schasingluluactivate SDEI #salmon 28*91f16700Schasingluluactivate EL3 #red 29*91f16700Schasinglulunote over EL3: Prepare SDEI dispatch 30*91f16700SchasingluluEL3->EL2: dispatch 31*91f16700Schasingluluactivate EL2 #salmon 32*91f16700Schasinglulunote over EL2: SDEI handler 33*91f16700SchasingluluEL2->EL3: **SDEI_EVENT_COMPLETE()** 34*91f16700Schasingluludeactivate EL2 35*91f16700Schasinglulunote over EL3: Complete SDEI dispatch 36*91f16700SchasingluluEL3-->SDEI: EOI 37*91f16700Schasingluludeactivate SDEI 38*91f16700SchasingluluEL3->EL2: resumes preempted execution 39*91f16700Schasingluludeactivate EL3 40*91f16700Schasinglulu 41*91f16700Schasinglulu... <<Normal execution resumes>> ... 42*91f16700Schasinglulu 43*91f16700Schasinglulu@enduml 44