qemu-e2k/hw/core
Ard Biesheuvel ff11422804 hw: arm: Support direct boot for Linux/arm64 EFI zboot images
Fedora 39 will ship its arm64 kernels in the new generic EFI zboot
format, using gzip compression for the payload.

For doing EFI boot in QEMU, this is completely transparent, as the
firmware or bootloader will take care of this. However, for direct
kernel boot without firmware, we will lose the ability to boot such
distro kernels unless we deal with the new format directly.

EFI zboot images contain metadata in the header regarding the placement
of the compressed payload inside the image, and the type of compression
used. This means we can wire up the existing gzip support without too
much hassle, by parsing the header and grabbing the payload from inside
the loaded zboot image.

Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Alex Bennée <alex.bennee@linaro.org>
Cc: Richard Henderson <richard.henderson@linaro.org>
Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Message-id: 20230303160109.3626966-1-ardb@kernel.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: tweaked comment formatting, fixed checkpatch nits]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2023-03-06 14:08:12 +00:00
..
bus.c
clock-vmstate.c
clock.c
cpu-common.c accel: introduce accelerator blocker API 2023-01-11 09:59:39 +01:00
cpu-sysemu.c hw/core/cpu-sysemu: used cached class in cpu_asidx_from_attrs 2022-10-03 20:53:30 -07:00
fw-path-provider.c
generic-loader.c
gpio.c
guest-loader.c
guest-loader.h
hotplug-stubs.c
hotplug.c
irq.c hw/irq: Declare QOM macros using OBJECT_DECLARE_SIMPLE_TYPE() 2023-02-27 13:27:05 +00:00
Kconfig
loader-fit.c
loader.c hw: arm: Support direct boot for Linux/arm64 EFI zboot images 2023-03-06 14:08:12 +00:00
machine-hmp-cmds.c machine: Move HMP commands from monitor/ to hw/core/ 2023-02-04 07:56:54 +01:00
machine-qmp-cmds.c qapi: Add 'acpi' field to 'query-machines' output 2023-03-01 11:36:53 +01:00
machine-smp.c hw/acpi/aml-build: Only generate cluster node in PPTT when specified 2023-01-08 01:54:23 -05:00
machine.c virtio-rng-pci: fix transitional migration compat for vectors 2023-03-02 03:10:47 -05:00
meson.build
nmi.c hw/core: Improve error message when machine doesn't provide NMIs 2023-02-23 14:10:17 +01:00
null-machine.c
numa.c qapi machine: Elide redundant has_FOO in generated C 2022-12-14 20:04:47 +01:00
or-irq.c hw: Replace qemu_or_irq typedef by OrIRQState 2023-02-27 13:27:05 +00:00
platform-bus.c
ptimer.c replay: Extract core API to 'exec/replay-core.h' 2023-02-27 22:29:01 +01:00
qdev-clock.c Drop more useless casts from void * to pointer 2022-12-14 16:19:35 +01:00
qdev-fw.c
qdev-hotplug.c
qdev-prop-internal.h
qdev-properties-system.c hw/core/qdev-properties-system: Allow the 'slew' policy only on x86 2023-01-13 16:22:57 +01:00
qdev-properties.c
qdev.c hw/qdev: Constify DeviceState* argument of qdev_get_parent_bus() 2023-02-27 22:29:01 +01:00
register.c
reset.c reset: allow registering handlers that aren't called by snapshot loading 2022-10-27 11:34:31 +01:00
resettable.c hw/core/resettable: fix reset level counting 2022-10-27 10:27:23 +01:00
split-irq.c
stream.c
sysbus-fdt.c hw/core: Tidy up unnecessary casting away of const 2022-10-22 22:50:27 +02:00
sysbus.c bulk: Rename TARGET_FMT_plx -> HWADDR_FMT_plx 2023-01-18 11:14:34 +01:00
trace-events hw: Remove device_legacy_reset() 2022-12-16 15:55:32 +00:00
trace.h
uboot_image.h
vm-change-state-handler.c
vmstate-if.c