[kernel][arm64][mmu] Validate aspace is unmapped

The arm mmu code does not currently track all of the physical pages
allocated during the runtime of the aspace and relies on the upper level
code having called unmap prior to destroy. Assert that the top level
page table is cleaned up at destroy time.

Also moved asid allocator out into a separate file, no functional
change.

Change-Id: Idc852b26c05d3c477b852c53c6c6b8e38d29f0f2
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/447134
Testability-Review: Adrian Danis <adanis@google.com>
Fuchsia-Auto-Submit: Adrian Danis <adanis@google.com>
Commit-Queue: Adrian Danis <adanis@google.com>
Reviewed-by: Travis Geiselbrecht <travisg@google.com>
4 files changed
tree: fb1df983e2dbdfb016328095ec951f302103d3af
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. garnet/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .gitattributes
  17. .gitignore
  18. .gn
  19. .style.yapf
  20. AUTHORS
  21. BUILD.gn
  22. CODE_OF_CONDUCT.md
  23. CONTRIBUTING.md
  24. LICENSE
  25. OWNERS
  26. PATENTS
  27. README.md
  28. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.