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)

Reply via email to