Use VM reference DT instead of VM base DTBO in pvmfw config v1.2
Bug: 318431695
Test: adb shell /apex/com.android.virt/bin/vm run-microdroid --protected
Test: adb shell /apex/com.android.virt/bin/vm run-microdroid --protected --vendor /vendor/etc/avf/microdroid/microdroid_vendor.img
Test: adb -s <Microdroid Device> shell ls /sys/firmware/devicetree/base/avf
Test: adb -s <Microdroid Device> shell cat /sys/firmware/devicetree/base/avf/vendor_hashtree_descriptor_root_digest
Change-Id: I9aaadb1c760a136f6c81cab55176676a70a81851
diff --git a/pvmfw/src/entry.rs b/pvmfw/src/entry.rs
index 8eca7a1..253604b 100644
--- a/pvmfw/src/entry.rs
+++ b/pvmfw/src/entry.rs
@@ -88,7 +88,7 @@
kernel: usize,
kernel_size: usize,
vm_dtbo: Option<&mut [u8]>,
- vm_base_dtbo: Option<&[u8]>,
+ vm_ref_dt: Option<&[u8]>,
) -> Result<Self, RebootReason> {
let fdt_size = NonZeroUsize::new(crosvm::FDT_MAX_SIZE).unwrap();
// TODO - Only map the FDT as read-only, until we modify it right before jump_to_payload()
@@ -102,7 +102,7 @@
// SAFETY: The tracker validated the range to be in main memory, mapped, and not overlap.
let fdt = unsafe { slice::from_raw_parts_mut(range.start as *mut u8, range.len()) };
- let info = fdt::sanitize_device_tree(fdt, vm_dtbo, vm_base_dtbo)?;
+ let info = fdt::sanitize_device_tree(fdt, vm_dtbo, vm_ref_dt)?;
let fdt = libfdt::Fdt::from_mut_slice(fdt).map_err(|e| {
error!("Failed to load sanitized FDT: {e}");
RebootReason::InvalidFdt
@@ -233,7 +233,7 @@
payload,
payload_size,
config_entries.vm_dtbo,
- config_entries.vm_base_dtbo,
+ config_entries.vm_ref_dt,
)?;
// This wrapper allows main() to be blissfully ignorant of platform details.