• Ard Biesheuvel's avatar
    arm64/efi: invert UEFI memory region reservation logic · 61139eb0
    Ard Biesheuvel authored
    Instead of reserving the memory regions based on which types we know
    need to be reserved, consider only regions of the following types as
    free for general use by the OS:
    
    EFI_LOADER_CODE
    EFI_LOADER_DATA
    EFI_BOOT_SERVICES_CODE
    EFI_BOOT_SERVICES_DATA
    EFI_CONVENTIONAL_MEMORY
    
    Note that this also fixes a problem with the original code, which would
    misidentify a EFI_RUNTIME_SERVICES_DATA region as not reserved if it
    does not have the EFI_MEMORY_RUNTIME attribute set. However, it is
    perfectly legal for the firmware not to request a virtual mapping for
    EFI_RUNTIME_SERVICES_DATA regions that contain configuration tables, in
    which case the EFI_MEMORY_RUNTIME attribute would not be set.
    Acked-by: default avatarRoy Franz <roy.franz@linaro.org>
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    61139eb0
efi.c 11 KB