Fix bug when handling EL1 debug register accesses

Certain registers weren't correctly encoded.  Make the encoding scheme similar
to the tables in the Arm Architecture Reference Manual to make it easier to add
new registers as well as spot incorrectly encoded ones.

Fix bug when handling system register accesses with the zero register (XZR) as
the source or the destination.

Log accesses to unhandled registers before they abort, with details on the
encoding of the unhandled register access.

Separate code that is not strictly related to debug registers to facilitate
adding support for performance monitor registers in the future.

Bug: 141452761
Change-Id: Idf717ec56a66ada69d20c590ec2182845afd84b1
7 files changed
tree: 0a7e01b4e4e8497971614da71f4de99b25e01ea1
  1. .vscode/
  2. build/
  3. docs/
  4. driver/
  5. inc/
  6. kokoro/
  7. project/
  8. src/
  9. test/
  10. third_party/
  11. .clang-format
  12. .clang-tidy
  13. .gitignore
  14. .gitmodules
  15. .gn
  16. AUTHORS
  17. BUILD.gn
  18. CONTRIBUTING.md
  19. LICENSE
  20. Makefile
  21. 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.

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

Documentation

More documentation is available on: