@samitouri / QOSamiQemu / commits / 94affc307d

hw/arm: add support for shim loading

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>

Gerd Hoffmann committed May 21, 2026 at 13:28 UTC 94affc307dd3aa03f8cf1f12117754b8a1372741
2 files changed +7
hw/arm/boot.c
+6
@@ -1161,6 +1161,11 @@ static void arm_setup_firmware_boot(ARMCPU *cpu, struct arm_boot_info *info)
1161 fw_cfg_add_string(fw_cfg, FW_CFG_CMDLINE_DATA,
1162 info->kernel_cmdline);
1163 }
1164 +
1165 + if (info->shim_filename) {
1166 + load_image_to_fw_cfg_file(fw_cfg, "etc/boot/shim",
1167 + info->shim_filename);
1168 + }
1169 }
1170
1171 /*
@@ -1195,6 +1200,7 @@ void arm_load_kernel(ARMCPU *cpu, MachineState *ms, struct arm_boot_info *info)
1200 * doesn't support secure.
1201 */
1202 assert(!(info->secure_board_setup && kvm_enabled()));
1203 + info->shim_filename = ms->shim_filename;
1204 info->kernel_filename = ms->kernel_filename;
1205 info->kernel_cmdline = ms->kernel_cmdline;
1206 info->initrd_filename = ms->initrd_filename;
include/hw/arm/boot.h
+1
@@ -39,6 +39,7 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename,
39 /* arm_boot.c */
40 struct arm_boot_info {
41 uint64_t ram_size;
42 + const char *shim_filename;
43 const char *kernel_filename;
44 const char *kernel_cmdline;
45 const char *initrd_filename;