commit | 5c4bef62d9e1163add95632129f5a48cb16a448c | [log] [tgz] |
---|---|---|
author | Pierre-Clément Tosi <ptosi@google.com> | Tue Aug 13 22:07:55 2024 +0100 |
committer | Pierre-Clément Tosi <ptosi@google.com> | Wed Aug 14 15:13:19 2024 +0100 |
tree | de73f1a52b6825f8323a2d6435532db0f8c0828a | |
parent | fd3d6469c77c8fabd54a44409e796e95128938b1 [diff] |
vmbase_example: Clarify that PageTable is dropped The code calls init_page_table() at some point and, based on the name of the function and when it gets called (right before vmbase_example accesses the PCI BARs), it seems to be to configure the page tables in use. However, the PageTable struct is local to the function and gets dropped when it returns. As a result, TTBR0_EL1 (which was reprogrammed by page_table.activate()) reverts back to its previous value, which was the hard-coded page tables in idmap.S! The reason why the accesses to the PCI BAR or (right before) to the DT don't result in page faults is because they respectively fall in the DEVICE_REGION ([0; 1Gib[) and dtb_region, both of which are already mapped in idmap.S. Instead, keep the code unmodified but explicitly show that we're dropping the page_table struct and mention it in a comment. No functional change intended. Test: atest vmbase_example.integration_test Change-Id: Iaa2b21f42dc9afcebe2192fe7fdcfc4df80d01e8
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: