vbe: Allow loading loadables if there is no firmware
authorSimon Glass <sjg@chromium.org>
Thu, 16 Jan 2025 01:27:15 +0000 (18:27 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 22 Jan 2025 15:47:50 +0000 (09:47 -0600)
In some cases only the 'loadable' property is present in the FIT.
Handle this by loading the first such image.

Signed-off-by: Simon Glass <sjg@chromium.org>
boot/vbe_common.c

index 8fe278b..b935513 100644 (file)
@@ -183,6 +183,13 @@ int vbe_read_fit(struct udevice *blk, ulong area_offset, ulong area_size,
                             IH_ARCH_DEFAULT, image_ph(phase, IH_TYPE_FIRMWARE),
                             BOOTSTAGE_ID_FIT_SPL_START, FIT_LOAD_IGNORED,
                             &load_addr, &len);
+       if (ret == -ENOENT) {
+               ret = fit_image_load(&images, addr, &fit_uname,
+                                    &fit_uname_config, IH_ARCH_DEFAULT,
+                                    image_ph(phase, IH_TYPE_LOADABLE),
+                                    BOOTSTAGE_ID_FIT_SPL_START,
+                                    FIT_LOAD_IGNORED, &load_addr, &len);
+       }
        if (ret < 0)
                return log_msg_ret("ld", ret);
        node = ret;