move the PCI MMIO regions on aarch64
Some guest changes were required:
* microdroid: PCI CAM base is hardcoded in the bootconfig. Should be
migrated to `androidboot.boot_part_uuid` to avoid this.
* libvmbase: `MMIO_END` was incorrect. Shouldn't need to be updated
again for similar future changes.
* vmbase_example: Assumed all MMIO is in first GiB.
* platform.dts: Possibly working as intended
Bug: 361390145
Bug: 376480819
Test: packages/modules/Virtualization/android/vm/vm_shell.sh start-microdroid --auto-connect -- --enable-earlycon
Test: packages/modules/Virtualization/android/vm/vm_shell.sh start-microdroid --auto-connect -- --enable-earlycon --protected
Test: atest rialto
Change-Id: Ie4d09d4d7504dfc1022d0cf675af77c97750c257
diff --git a/android/virtmgr/src/crosvm.rs b/android/virtmgr/src/crosvm.rs
index b0944fc..46f4e80 100644
--- a/android/virtmgr/src/crosvm.rs
+++ b/android/virtmgr/src/crosvm.rs
@@ -1022,6 +1022,13 @@
command.arg("--params").arg("console=hvc0");
}
+ // Move the PCI MMIO regions to near the end of the low-MMIO space.
+ // This is done to accommodate a limitation in a partner's hypervisor.
+ #[cfg(target_arch = "aarch64")]
+ command
+ .arg("--pci")
+ .arg("mem=[start=0x70000000,size=0x2000000],cam=[start=0x72000000,size=0x1000000]");
+
command.arg("--mem").arg(memory_mib.to_string());
if let Some(cpus) = config.cpus {