Thanks for the CC Heinrich
On Fri, 11 Apr 2025 at 09:31, Heinrich Schuchardt <xypron.g...@gmx.de> wrote: > > On 3/23/25 20:03, Christian Kohlschütter wrote: > > Calling bootefi on an address that was loaded from memory (e.g., cramfs > > or SPI flash via "sf read", etc.), currently results in the EFI binary > > not being able to access the EFI image device path. > > > > For example, iPXE would fail with an error "EFI could not get loaded > > image's device path: Error 0x7f39e082 (https://ipxe.org/7f39e082)". > > > > This is due to an incomplete special-case in efi_binary_run, where a new > > device path was created but not used in all required places. > > > > Fix the in-memory special case, set the "bootefi_device_path" to the > > generated "file_path". > > > > iPXE will now boot, and report the device path as > > "/MemoryMapped(0x0,0xSTART,0xLEN)" > > > > Signed-off-by: Christian Kohlschütter <christ...@kohlschutter.com> > > Hello Christian, > > Thank you for the patch. > > For future submission, please, use scripts/get_maintainer.pl to identify > mail recipients. > > Best regards > > Reviewed-by: Heinrich Schuchardt <xypron.g...@gmx.de> > > > > --- > > lib/efi_loader/efi_bootbin.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/lib/efi_loader/efi_bootbin.c b/lib/efi_loader/efi_bootbin.c > > index 10ec5e9ada3..f78cf972228 100644 > > --- a/lib/efi_loader/efi_bootbin.c > > +++ b/lib/efi_loader/efi_bootbin.c > > @@ -268,6 +268,9 @@ efi_status_t efi_binary_run(void *image, size_t size, > > void *fdt) > > file_path, > > NULL); > > if (ret != EFI_SUCCESS) > > goto out; > > + > > + bootefi_device_path = file_path; > > + bootefi_image_path = NULL; > > } else { > > log_debug("Loaded from disk\n"); > > } > Reviewed-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>