[PATCH 2/3] efi_loader: binary_run: register an initrd
Adriano Córdova
adrianox at gmail.com
Wed Mar 19 13:07:57 CET 2025
Hi Ilias,
El mié, 19 mar 2025 a las 6:32, Ilias Apalodimas (<
ilias.apalodimas at linaro.org>) escribió:
> Hi Adriano,
>
> [...]
>
> > */
> > static efi_status_t efi_binary_run_dp(void *image, size_t size, void
> *fdt,
> > + void *initrd, size_t initd_sz,
> > struct efi_device_path *dp_dev,
> > struct efi_device_path *dp_img)
> > {
> > efi_status_t ret;
> > + struct efi_device_path *dp_initrd;
> >
> > /* Initialize EFI drivers */
> > ret = efi_init_obj_list();
> > @@ -230,6 +234,14 @@ static efi_status_t efi_binary_run_dp(void *image,
> size_t size, void *fdt,
> > if (ret != EFI_SUCCESS)
> > return ret;
> >
> > + dp_initrd = efi_dp_from_mem(EFI_RESERVED_MEMORY_TYPE,
> (uintptr_t)initrd, initd_sz);
>
> Why do we need reserved memory? What the EFI stub does, is allocate a
> new memory buffer which you later copy the initrd to.
> I think Boot Services Data is enough.
>
dp_initrd is freed when the efi application returns in
efi_initrd_deregister. Do you suggest to change it to
Boot Sevices Data and when the efi application returns just assume that it
is freed? I took the usage from:
https://github.com/u-boot/u-boot/blob/8bc3542384e3a1219e5ffb62b79d16dddc1b1fb9/lib/efi_loader/efi_bootmgr.c#L514
>
> [...]
>
> Thanks
> /Ilias
>
More information about the U-Boot
mailing list