Am 25. Juli 2025 19:35:33 MESZ schrieb Javier Tia <javier....@linaro.org>: >Together with current '.iso' and '.img', the try_load_from_uri_path >function now allows files with the '.wic' extension as viable bootable >images.
Why wouldn't you simply name your files *.img? Shouldn't we get away from the DOS age routine of relying on filename extensions? Just check if the fileheader is a PE header or if it is a known partitoning scheme. Best regards Heinrich > >Very frequent in the Yocto project, the WIC files are disk image files, >which should be handled similarly to other disk images: mounted as RAM >disks and subsequently searched for the EFI boot file. > >This improvement enables the EFI boot manager of U-Boot to boot from WIC >images downloaded via HTTP, therefore extending the supported image >formats for network-based booting situations. > >Signed-off-by: Javier Tia <javier....@linaro.org> >--- > lib/efi_loader/efi_bootmgr.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > >diff --git a/lib/efi_loader/efi_bootmgr.c b/lib/efi_loader/efi_bootmgr.c >index 662993fb809..587efee3169 100644 >--- a/lib/efi_loader/efi_bootmgr.c >+++ b/lib/efi_loader/efi_bootmgr.c >@@ -407,7 +407,7 @@ static efi_status_t efi_bootmgr_release_uridp(struct >uridp_context *ctx) > if (!ctx) > return ret; > >- /* cleanup for iso or img image */ >+ /* cleanup for iso, img, or wic image */ > if (ctx->ramdisk_blk_dev) { > ret = efi_add_memory_map(ctx->image_addr, ctx->image_size, > EFI_CONVENTIONAL_MEMORY); >@@ -516,13 +516,14 @@ static efi_status_t try_load_from_uri_path(struct >efi_device_path_uri *uridp, > image_size = ALIGN(image_size, SZ_2M); > > /* >- * If the file extension is ".iso" or ".img", mount it and try to load >+ * If the file extension is ".iso", ".img", or ".wic", mount it and try >to load > * the default file. > * If the file is PE-COFF image, load the downloaded file. > */ > uri_len = strlen(uridp->uri); > if (!strncmp(&uridp->uri[uri_len - 4], ".iso", 4) || >- !strncmp(&uridp->uri[uri_len - 4], ".img", 4)) { >+ !strncmp(&uridp->uri[uri_len - 4], ".img", 4) || >+ !strncmp(&uridp->uri[uri_len - 4], ".wic", 4)) { > ret = prepare_loaded_image(lo_label, image_addr, image_size, > &loaded_dp, &blk); > if (ret != EFI_SUCCESS)