VHE: Update VM loading code to load and map EL0 partitions

Updated load_secondary function to account for EL0 partitions. The main
change is that all the EL0 partitions mappings need to be marked as user
only and non-global. Also the hypervisor is mapped into the partitions
page tables but unprivileged access is disabled to those mappings. This
is required when crossing the boundary from EL0 to the hypervisor.
Note that the amount of hypervisor memory mapped into the EL0 partitions
page tables can be minimized to only contain the exception vectors but
that is left as a future exercise.

Change-Id: Ie4960c1e78855fd6e4e44565137238092dc173e8
Signed-off-by: Raghu Krishnamurthy <raghu.ncstate@gmail.com>
3 files changed
tree: e16431e5a2c7194f3fe1e157d680de8fad2e7ca6
  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: