sdei_general.puml 926 B

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