[PATCH] Revert "efi_memory: do not add U-Boot memory to the memory map"

Ilias Apalodimas ilias.apalodimas at linaro.org
Tue Nov 12 14:45:03 CET 2024


Hi Simon,

On Tue, 12 Nov 2024 at 15:18, Simon Glass <sjg at chromium.org> wrote:
>
> A bisect of Ubuntu 2022.04 boot-failure on qemu-x86_64 resulted in this
> patch. I am not sure how to investigate it.
>
> The boot hangs at some point during booting of the install image, before
> the Ubuntu logo appears.

Any idea if this is before or after ExitBootServices? The console
prints some efi-stub calls before it jumps into the kernel.
Unfortunately, those aren't preserved in a dmesg

>
> I will sent a series with a script showing how it is run.
>

How can I reproduce this? Run the installer on QEMU on top of U-Boot?
Is U-Boot compiled as an EFI app or not?

> This reverts commit a68c9ac5d8afc51c619c5d3e865fcf147bea90cb.

In theory, the memory map should already be added by LMB. So instead
of reverting this, it would make more sense to compare the memory map
with/without the patch and see if something is missing from LMB

Thanks
/Ilias
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  lib/efi_loader/efi_memory.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
> index d2f5d563f2a..c7400ec9854 100644
> --- a/lib/efi_loader/efi_memory.c
> +++ b/lib/efi_loader/efi_memory.c
> @@ -809,6 +809,16 @@ static void add_u_boot_and_runtime(void)
>  {
>         unsigned long runtime_start, runtime_end, runtime_pages;
>         unsigned long runtime_mask = EFI_PAGE_MASK;
> +       unsigned long uboot_start, uboot_pages;
> +       unsigned long uboot_stack_size = CONFIG_STACK_SIZE;
> +
> +       /* Add U-Boot */
> +       uboot_start = ((uintptr_t)map_sysmem(gd->start_addr_sp, 0) -
> +                      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_BOOT_SERVICES_CODE,
> +                             false);
>
>  #if defined(__aarch64__)
>         /*
> --
> 2.34.1
>


More information about the U-Boot mailing list