This series of patches converts the memory allocator for kernel and initrd to use the ppc64 regions_claim memory allocator that takes into account memory regions that are not allowed to be used, such as the gap between 640MB and 768MB as well as memory regions beyond an upper address in case an fadump is present. Otherwise those two could be loaded into those forbidden memory regions and either cause a crash or corruption of the fadump.
I adjusted the kernel and initrd load in loader/powerpc/ieee1275 to use the new memory allocator. I am not aware of which other platforms besides PowerVM and PowerKVM, if any, may be using this code and so I did not touch the functions loading 32 bit kernels, which the targeted platform does not typically use. The last patch is for viewing where the memory allocations are going and is not to be applied, of course. Regards, Stefan Stefan Berger (8): kern/ieee1275/init: ppc64: Introduce a request for regions_claim kern/ieee1275/init: ppc64: Decide by request whether to initialize region kern/ieee1275/init: ppc64: Return allocated address and len using context kern/ieee1275/init: ppc64: Check early for sufficiently large chunk kern/ieee1275/init: ppc64: Add support for alignment requirements kern/ieee1275/init: ppc64: Implement alloc_mem_restricted loader/powerpc/ieee1275: Use new allocation function for kernel and initrd debug: Display successful memory claims grub-core/Makefile.am | 1 + grub-core/kern/ieee1275/ieee1275.c | 1 + grub-core/kern/ieee1275/init.c | 72 +++++++++++++++++++---- grub-core/loader/powerpc/ieee1275/linux.c | 24 ++++++-- include/grub/powerpc/ieee1275/alloc.h | 20 +++++++ 5 files changed, 102 insertions(+), 16 deletions(-) create mode 100644 include/grub/powerpc/ieee1275/alloc.h -- 2.25.1 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel