[PATCH] efi_loader: fix memory type for memory reservation block

Peter Robinson pbrobinson at gmail.com
Sun Mar 14 20:28:51 CET 2021


On Sun, Mar 14, 2021 at 7:04 PM Mark Kettenis <kettenis at openbsd.org> wrote:
>
> The devicetree specification clearly states that:
>
>   As with the /reserved-memory node, when booting via UEFI
>   entries in the Memory Reservation Block must also be listed
>   in the system memory map obtained via the GetMemoryMap() toi
>   protect against allocations by UEFI applications. The memory
>   reservation block entries should be listed with type
>   EfiReservedMemoryType.
>
> This restores the behaviour that was changed by commit 4cbb2930bd8c
> ("efi_loader: consider no-map property of reserved memory").
>
> Signed-off-by: Mark Kettenis <kettenis at openbsd.org>
Tested-by: Peter Robinson <pbrobinson at gmail.com>

This fixes the issue that I reported last week with the Raspberry Pi 3.
https://lists.denx.de/pipermail/u-boot/2021-March/444139.html

> ---
>  lib/efi_loader/efi_dt_fixup.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/efi_loader/efi_dt_fixup.c b/lib/efi_loader/efi_dt_fixup.c
> index a4529ee3ef..b6fe5d2e5a 100644
> --- a/lib/efi_loader/efi_dt_fixup.c
> +++ b/lib/efi_loader/efi_dt_fixup.c
> @@ -61,7 +61,7 @@ void efi_carve_out_dt_rsv(void *fdt)
>         for (i = 0; i < nr_rsv; i++) {
>                 if (fdt_get_mem_rsv(fdt, i, &addr, &size) != 0)
>                         continue;
> -               efi_reserve_memory(addr, size, false);
> +               efi_reserve_memory(addr, size, true);
>         }
>
>         /* process reserved-memory */
> --
> 2.30.2
>


More information about the U-Boot mailing list