Quit pretending that IPAs aren't identity mapped.

Information about memory sharing will be stored in the page table
entries rather than introducing a new data structure as that adds
complexity and new potential for memory management issues.

The information includes tracking whether memory is owned by a VM. If a
region of memory is borrowed by another, the memory can only be passed
back the the owner and this is checked by looking in the page table.
Identity mapping is needed so we know where to look in the table as,
otherwise, searching for a physical address is impractical.

Change-Id: I417376b3ecd31bc07518ac5c51b9fb7df2f4b3e1
4 files changed
tree: 753e7f48fc7ac43e7656de05c005e1f2dc304245
  1. build/
  2. docs/
  3. driver/
  4. inc/
  5. kokoro/
  6. project/
  7. src/
  8. test/
  9. third_party/
  10. .clang-format
  11. .clang-tidy
  12. .gitignore
  13. .gitmodules
  14. .gn
  15. BUILD.gn
  16. CONTRIBUTING.md
  17. LICENSE
  18. Makefile
  19. 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-discuss@googlegroups.com.

Getting started

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