]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
hw/arm: add support for shim loading
authorGerd Hoffmann <kraxel@redhat.com>
Thu, 21 May 2026 11:28:06 +0000 (13:28 +0200)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 6 Jul 2026 10:32:01 +0000 (11:32 +0100)
Add support for direct kernel boot with
shim to the arm platform.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20260521112806.504961-4-kraxel@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/arm/boot.c
include/hw/arm/boot.h

index 780b6be63718c6a8f069c45192ebb37bfc80335d..9b7553dde5e1ffa92fe980031c9f1e8c8e31bc1d 100644 (file)
@@ -1161,6 +1161,11 @@ static void arm_setup_firmware_boot(ARMCPU *cpu, struct arm_boot_info *info)
             fw_cfg_add_string(fw_cfg, FW_CFG_CMDLINE_DATA,
                               info->kernel_cmdline);
         }
+
+        if (info->shim_filename) {
+            load_image_to_fw_cfg_file(fw_cfg, "etc/boot/shim",
+                                      info->shim_filename);
+        }
     }
 
     /*
@@ -1195,6 +1200,7 @@ void arm_load_kernel(ARMCPU *cpu, MachineState *ms, struct arm_boot_info *info)
      * doesn't support secure.
      */
     assert(!(info->secure_board_setup && kvm_enabled()));
+    info->shim_filename = ms->shim_filename;
     info->kernel_filename = ms->kernel_filename;
     info->kernel_cmdline = ms->kernel_cmdline;
     info->initrd_filename = ms->initrd_filename;
index a2e22bda8a57ed0ce8bff83182d141e1a87672de..94386fdbea6c5f851da0bd55a795f394992be9ee 100644 (file)
@@ -39,6 +39,7 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename,
 /* arm_boot.c */
 struct arm_boot_info {
     uint64_t ram_size;
+    const char *shim_filename;
     const char *kernel_filename;
     const char *kernel_cmdline;
     const char *initrd_filename;