fix(interrupts): save and restore priority mask

To simplify secure interrupt handling, the threshold for interrupts
was changed by modifying the priority mask without saving the current
value of priority mask. This led to overriding of original priority
mask. This patch performs save and restore of priority mask at
appropriate times.

Please note the current design makes the assumption that the target vCPU
of a secure interrupt is pinned to the same physical CPU on which the
secure interrupt triggered. The target vCPU has to be resumed on the current
CPU in order for it to service the virtual interrupt. This design limitation
simplifies the interrupt management implementation in SPMC.

Change-Id: I8571cb81595080a0555346e075591234a78e510d
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
4 files changed
tree: 5de778d76d8ec8fb1381eefa53f930c938567829
  1. .vscode/
  2. build/
  3. docs/
  4. driver/
  5. inc/
  6. kokoro/
  7. project/
  8. src/
  9. test/
  10. third_party/
  11. vmlib/
  12. .clang-format
  13. .clang-tidy
  14. .gitignore
  15. .gitmodules
  16. .gn
  17. AUTHORS
  18. BUILD.gn
  19. CONTRIBUTING.md
  20. dco.txt
  21. LICENSE
  22. Makefile
  23. navbar.md
  24. README.md
README.md

Hafnium

Hafnium is a hypervisor, initially supporting aarch64 (64-bit Armv8 CPUs).

Get in touch and keep up-to-date at hafnium@lists.trustedfirmware.org. See feature requests and bugs on our bug dashboard.

Getting started

To jump in and build Hafnium, follow the getting started instructions.

If you want to contribute to the project, see details of how we accept contributions.

Documentation

More documentation is available on: