xemu/hw/arm
Peter Maydell 5e6dbe1e8c hw/arm/boot: Honour image size field in AArch64 Image format kernels
Since Linux v3.17, the kernel's Image header includes a field image_size,
which gives the total size of the kernel including unpopulated data
sections such as the BSS). If this is present, then return it from
load_aarch64_image() as the true size of the kernel rather than
just using the size of the Image file itself. This allows the code
which calculates where to put the initrd to avoid putting it in
the kernel's BSS area.

This means that we should be able to reliably load kernel images
which are larger than 128MB without accidentally putting the
initrd or dtb in locations that clash with the kernel itself.

Fixes: https://bugs.launchpad.net/qemu/+bug/1823998
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Message-id: 20190516144733.32399-5-peter.maydell@linaro.org
2019-06-17 15:11:18 +01:00
..
Kconfig hw/acpi: Consolidate build_mcfg to pci.c 2019-05-29 18:00:57 -04:00
Makefile.objs hw/arm: Express dependencies of the microbit / nrf51 machine with Kconfig 2019-05-13 09:36:32 +02:00
allwinner-a10.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
armsse.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
armv7m.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
aspeed.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
aspeed_soc.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
bcm2835_peripherals.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
bcm2836.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
boot.c hw/arm/boot: Honour image size field in AArch64 Image format kernels 2019-06-17 15:11:18 +01:00
collie.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
cubieboard.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
digic.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
digic_boards.c pflash: Clean up after commit 368a354f02, part 2 2019-03-11 22:53:44 +01:00
exynos4_boards.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
exynos4210.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
fsl-imx6.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
fsl-imx6ul.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
fsl-imx7.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
fsl-imx25.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
fsl-imx31.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
gumstix.c hw/devices: Move SMSC 91C111 declaration into a new header 2019-04-29 17:57:21 +01:00
highbank.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
imx25_pdk.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
integratorcp.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
kzm.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
mainstone.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
mcimx6ul-evk.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
mcimx7d-sabre.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
microbit.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
mps2-tz.c hw/arm/mps2: Use object_initialize_child for correct reference counting 2019-05-24 15:29:02 -03:00
mps2.c hw/arm/mps2: Use object_initialize_child for correct reference counting 2019-05-24 15:29:02 -03:00
msf2-soc.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
msf2-som.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
musca.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
musicpal.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
netduino2.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
nrf51_soc.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
nseries.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
omap1.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
omap2.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
omap_sx1.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
palm.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
pxa2xx.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
pxa2xx_gpio.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
pxa2xx_pic.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
raspi.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
realview.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
sabrelite.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
smmu-common.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
smmu-internal.h hw/arm/smmu-common: VMSAv8-64 page table walk 2018-05-04 18:05:51 +01:00
smmuv3-internal.h Clean up header guards that don't match their file name 2019-05-13 08:58:55 +02:00
smmuv3.c hw/arm/smmuv3: Fix decoding of ID register range 2019-06-13 15:14:03 +01:00
spitz.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
stellaris.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
stm32f205_soc.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
strongarm.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
strongarm.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
sysbus-fdt.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
tosa.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
trace-events trace-events: Fix attribution of trace points to source 2019-03-22 16:18:07 +00:00
versatilepb.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
vexpress.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00
virt-acpi-build.c hw/acpi: extract acpi_add_rom_blob() 2019-06-16 16:16:52 -04:00
virt.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
xilinx_zynq.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
xlnx-versal-virt.c hw/arm: versal: Plug memory leaks 2019-01-07 15:23:46 +00:00
xlnx-versal.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
xlnx-zcu102.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
xlnx-zynqmp.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
z2.c arm: Rename hw/arm/arm.h to hw/arm/boot.h 2019-05-23 14:47:43 +01:00