bootm: add support for initrd in do_bootm_efi
authorAdriano Cordova <adrianox@gmail.com>
Wed, 19 Mar 2025 14:45:01 +0000 (11:45 -0300)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fri, 11 Apr 2025 11:20:38 +0000 (13:20 +0200)
Pass a pointer to a memory mapped initrd and its size to
efi_binary_run. The EFI stack will register an EFI_LOAD_FILE2_PROTOCOL
for the next boot stage to access this initrd.

Signed-off-by: Adriano Cordova <adriano.cordova@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
boot/bootm_os.c

index f403f35..35a32f8 100644 (file)
@@ -508,7 +508,8 @@ static int do_bootm_efi(int flag, struct bootm_info *bmi)
        ret = efi_binary_run(image_buf, images->os.image_len,
                             images->ft_len
                             ? images->ft_addr : EFI_FDT_USE_INTERNAL,
-                                NULL, 0);
+                                (void *)images->initrd_start,
+                                (size_t)(images->initrd_end - images->initrd_start));
 
        return ret;
 }