[vmbase] Move MAX_VIRT_ADDR from pvmfw to vmbase

As it is defined by the architecture specified in vmbase.

This parameter will be reused in both pvmfw and rialto.

Bug: 284462758
Test: m pvmfw_img
Change-Id: I1e638afeed223e443b400e2e65c2fcc9f79517e1
diff --git a/pvmfw/src/entry.rs b/pvmfw/src/entry.rs
index 5e22bae..96855f2 100644
--- a/pvmfw/src/entry.rs
+++ b/pvmfw/src/entry.rs
@@ -227,7 +227,7 @@
     // Up to this point, we were using the built-in static (from .rodata) page tables.
     MEMORY.lock().replace(MemoryTracker::new(
         page_table,
-        crosvm::MEM_START..memory::MAX_ADDR,
+        crosvm::MEM_START..layout::MAX_VIRT_ADDR,
         crosvm::MMIO_RANGE,
         Some(memory::appended_payload_range()),
     ));
diff --git a/pvmfw/src/fdt.rs b/pvmfw/src/fdt.rs
index ea002df..216ac9c 100644
--- a/pvmfw/src/fdt.rs
+++ b/pvmfw/src/fdt.rs
@@ -17,7 +17,6 @@
 use crate::bootargs::BootArgsIterator;
 use crate::cstr;
 use crate::helpers::GUEST_PAGE_SIZE;
-use crate::memory::MAX_ADDR;
 use crate::Box;
 use crate::RebootReason;
 use alloc::ffi::CString;
@@ -39,7 +38,7 @@
 use log::info;
 use log::warn;
 use tinyvec::ArrayVec;
-use vmbase::layout::crosvm::MEM_START;
+use vmbase::layout::{crosvm::MEM_START, MAX_VIRT_ADDR};
 use vmbase::memory::SIZE_4KB;
 use vmbase::util::flatten;
 use vmbase::util::RangeExt as _;
@@ -278,7 +277,7 @@
         error!("PCI address range size {:#x} overflows", size);
         return Err(RebootReason::InvalidFdt);
     };
-    if bus_end > MAX_ADDR.try_into().unwrap() {
+    if bus_end > MAX_VIRT_ADDR.try_into().unwrap() {
         error!("PCI address end {:#x} is outside of translatable range", bus_end);
         return Err(RebootReason::InvalidFdt);
     }
diff --git a/pvmfw/src/memory.rs b/pvmfw/src/memory.rs
index b21a3f0..11fcd7c 100644
--- a/pvmfw/src/memory.rs
+++ b/pvmfw/src/memory.rs
@@ -26,9 +26,6 @@
     util::align_up,
 };
 
-/// First address that can't be translated by a level 1 TTBR0_EL1.
-pub const MAX_ADDR: usize = 1 << 40;
-
 /// Returns memory range reserved for the appended payload.
 pub fn appended_payload_range() -> MemoryRange {
     let start = align_up(layout::binary_end(), SIZE_4KB).unwrap();
diff --git a/vmbase/src/layout/mod.rs b/vmbase/src/layout/mod.rs
index dd3e0e0..21c113a 100644
--- a/vmbase/src/layout/mod.rs
+++ b/vmbase/src/layout/mod.rs
@@ -20,6 +20,9 @@
 use core::ops::Range;
 use core::ptr::addr_of;
 
+/// First address that can't be translated by a level 1 TTBR0_EL1.
+pub const MAX_VIRT_ADDR: usize = 1 << 40;
+
 /// Get an address from a linker-defined symbol.
 #[macro_export]
 macro_rules! linker_addr {