File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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.
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments