proper way to reserve a chunk of memory at the top of the kernel?
I have a powerpc board with 512BM of memory. The BIOS has a chunk of memory at the top end of physical memory which it does not zero out over a reboot.
What's the proper way to tell linux that this chunk of physical memory should be ignored (so that we can access it later without worrying that Linux will try to allocate it)? Should I be calling
lmb_reserve(lmb_end_of_DRAM() - size, size);
in early_reserve_mem() or is there a better mechanism?
For comparison, in an older kernel this was done in set_phys_avail(), by calling mem_pieces_remove(&phys_avail, total_lowmem - size, size, 1);
Thanks,
Chris
Quoted 11 lines · Chris Friesen
I have a powerpc board with 512BM of memory. The BIOS has a chunk of memory at the top end of physical memory which it does not zero out over a reboot.
What's the proper way to tell linux that this chunk of physical memory should be ignored (so that we can access it later without worrying that Linux will try to allocate it)? Should I be calling
lmb_reserve(lmb_end_of_DRAM() - size, size);in
early_reserve_mem()or is there a better mechanism?
The device-tree blob contains a special "reserve map" in the header, which automatically turns into calls to lmb_reserve() early during boot, so putting your special region in that map should be the right way to do what you want without special code.
Quoted 2 lines
For comparison, in an older kernel this was done in
set_phys_avail(), by callingmem_pieces_remove(&phys_avail, total_lowmem - size, size, 1);
Cheers,
Ben.
Quoted 7 lines
Thanks,
Chris
_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://lists.ozlabs.org/listinfo/linuxppc-dev