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;