[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 {