loader.efi: multiboot2_exec() should fall back to use module load address
UEFI loader does read modules to temporary location and once boot services are switched off, it will try to find final location for module. With fragmented memory map, it may happen, the new location is offered above 4GB memory line. Unfortunately, we can not use high addresses, because module address in multiboot 2 module tag structure is 32-bit value.
If the above happens, try to re-use the location where module was loaded and skip the relocation at all.
This does fix UEFI loader on Lenovo x3650 M5. Also tested on "normal" systems, where we do not see such issue with memory map.
Updated by Electric Monk 13 days ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100
commit 5388916ef6c753f570909efa4a196dfdc68d6fb7 Author: Toomas Soome <firstname.lastname@example.org> Date: 2021-09-13T14:52:42.000Z 14060 loader.efi: multiboot2_exec() should fall back to use module load address Reviewed by: Robert Mustacchi <email@example.com> Approved by: Dan McDonald <firstname.lastname@example.org>