VHE: Update cpu code to allow for el0 partition execution

To run a el0 partitions vcpu the following changes are required:
1) HCR_EL2.TGE bit always needs to be set.
2) SPSR needs to be set to EL0t mode.
3) ttbr0_el2 needs to switched to the appropriate table. To do this a
new vcpu field for ttbr0_el2 is added. For normal VM's, ttbr0_el2 is the
same as the hypervisor page tables and for el0 partition's, the
appropriate page table and asid are used. ttbr0_el2 is now loaded on
every exit from el2.

Change-Id: I92a44874d820080a8e9a66dc0b6a628bf94d0b9d
Signed-off-by: Raghu Krishnamurthy <raghu.ncstate@gmail.com>
5 files changed
tree: 0b8f754dea8ff09d00b24802aeefed71ad57b59e
  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: