Skip to content

Commit 8bdee86

Browse files
committed
feat(env): drop support for non-FDT RAM get_ram_address
1 parent 159611f commit 8bdee86

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

src/env/mod.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,11 @@ pub fn fdt() -> Option<Fdt<'static>> {
6565
})
6666
}
6767

68-
pub(crate) fn get_ram_address() -> PhysAddr {
69-
PhysAddr::new(boot_info().hardware_info.phys_addr_range.start)
68+
pub(crate) fn get_ram_address() -> Option<PhysAddr> {
69+
let fdt = fdt()?;
70+
let memory = fdt.memory();
71+
let ptr = memory.regions().next()?.starting_address;
72+
Some(ptr.expose_provenance().into())
7073
}
7174

7275
/// Returns the RSDP physical address if available.

src/mm/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ pub(crate) fn init() {
147147
// On UEFI, the given memory is guaranteed free memory and the kernel is located before the given memory
148148
reserved_space
149149
} else {
150-
(kernel_addr_range.end.as_u64() - env::get_ram_address().as_u64() + reserved_space as u64)
151-
as usize
150+
(kernel_addr_range.end.as_u64() - env::get_ram_address().unwrap().as_u64()
151+
+ reserved_space as u64) as usize
152152
};
153153
info!("Minimum memory size: {} MiB", min_mem >> 20);
154154
let avail_mem = total_mem

0 commit comments

Comments
 (0)