vmbase_example: Run most tests using dynamic PTs

Instead of enabling the dynamic page tables for a short duration and
switching back to idmap.S, enable them early and keep them (almost)
until main() returns.

Map the DT before it is accessed by the tests. As a result, the
assertion that the DT must be at a hard-coded location can be lifted and
we can remove the mapping from idmap.S. Note that the PT test was
previously using .map_rodata() for the DT but, given modify_fdt(), we
must actually use .map_data().

For the PCI BAR, avoid a BBM violation but detecting if the region is
already mapped. To do so, implement RangeExt for MemoryRegion.

Test: atest vmbase_example.integration_test
Change-Id: I1abbf1566c579282742f5a0936e0934e69c38797
3 files changed
tree: 68b769db8d2aec1f2e944e66ab2bb34c5cf50fef
  1. android/
  2. build/
  3. docs/
  4. guest/
  5. libs/
  6. tests/
  7. .clang-format
  8. .gitignore
  9. Android.bp
  10. dice_for_avf_guest.cddl
  11. OWNERS
  12. PREUPLOAD.cfg
  13. README.md
  14. rustfmt.toml
  15. TEST_MAPPING
README.md

Android Virtualization Framework (AVF)

Android Virtualization Framework (AVF) provides secure and private execution environments for executing code. AVF is ideal for security-oriented use cases that require stronger isolation assurances over those offered by Android’s app sandbox.

Visit our public doc site to learn more about what AVF is, what it is for, and how it is structured. This repository contains source code for userspace components of AVF.

If you want a quick start, see the getting started guideline and follow the steps there.

For in-depth explanations about individual topics and components, visit the following links.

AVF components:

AVF APIs:

How-Tos: