[PATCH v2 1/1] efi_loader: don't use EFI_LOADER_DATA internally

Ilias Apalodimas ilias.apalodimas at linaro.org
Wed Nov 30 13:12:39 CET 2022


Thanks Heinrich

On Wed, 30 Nov 2022 at 14:11, Heinrich Schuchardt
<heinrich.schuchardt at canonical.com> wrote:
>
> EFI_LOADER_DATA/CODE is reserved for EFI applications.
> Memory allocated by U-Boot for internal usage should be
> EFI_BOOT_SERVICES_DATA or _CODE or EFI_RUNTIME_SERVICES_DATA or _CODE.
>
> Reported-by: François-Frédéric Ozog <ff at ozog.com>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> Reviewed-by: François-Frédéric Ozog <ff at ozog.com>
> ---
> v2:
>         use EFI_BOOT_SERVICES_CODE for the relocated U-Boot code
> ---
>  cmd/efidebug.c              | 2 +-
>  lib/efi_loader/efi_memory.c | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/cmd/efidebug.c b/cmd/efidebug.c
> index ef239bb34b..64104da130 100644
> --- a/cmd/efidebug.c
> +++ b/cmd/efidebug.c
> @@ -600,7 +600,7 @@ static int do_efi_show_memmap(struct cmd_tbl *cmdtp, int flag,
>         ret = efi_get_memory_map(&map_size, memmap, NULL, NULL, NULL);
>         if (ret == EFI_BUFFER_TOO_SMALL) {
>                 map_size += sizeof(struct efi_mem_desc); /* for my own */
> -               ret = efi_allocate_pool(EFI_LOADER_DATA, map_size,
> +               ret = efi_allocate_pool(EFI_BOOT_SERVICES_DATA, map_size,
>                                         (void *)&memmap);
>                 if (ret != EFI_SUCCESS)
>                         return CMD_RET_FAILURE;
> diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
> index a17b426d11..8d347f101f 100644
> --- a/lib/efi_loader/efi_memory.c
> +++ b/lib/efi_loader/efi_memory.c
> @@ -823,7 +823,7 @@ static void add_u_boot_and_runtime(void)
>                        uboot_stack_size) & ~EFI_PAGE_MASK;
>         uboot_pages = ((uintptr_t)map_sysmem(gd->ram_top - 1, 0) -
>                        uboot_start + EFI_PAGE_MASK) >> EFI_PAGE_SHIFT;
> -       efi_add_memory_map_pg(uboot_start, uboot_pages, EFI_LOADER_DATA,
> +       efi_add_memory_map_pg(uboot_start, uboot_pages, EFI_BOOT_SERVICES_CODE,
>                               false);
>
>  #if defined(__aarch64__)
> @@ -857,7 +857,7 @@ int efi_memory_init(void)
>         /* Request a 32bit 64MB bounce buffer region */
>         uint64_t efi_bounce_buffer_addr = 0xffffffff;
>
> -       if (efi_allocate_pages(EFI_ALLOCATE_MAX_ADDRESS, EFI_LOADER_DATA,
> +       if (efi_allocate_pages(EFI_ALLOCATE_MAX_ADDRESS, EFI_BOOT_SERVICES_DATA,
>                                (64 * 1024 * 1024) >> EFI_PAGE_SHIFT,
>                                &efi_bounce_buffer_addr) != EFI_SUCCESS)
>                 return -1;
> --
> 2.37.2
>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>


More information about the U-Boot mailing list