qemu/hw/arm
Ard Biesheuvel 68115ed5fc hw/arm/boot: take Linux/arm64 TEXT_OFFSET header field into account
The arm64 boot protocol stipulates that the kernel must be loaded
TEXT_OFFSET bytes beyond a 2 MB aligned base address, where TEXT_OFFSET
could be any 4 KB multiple between 0 and 2 MB, and whose value can be
found in the header of the Image file.

So after attempts to load the arm64 kernel image as an ELF file or as a
U-Boot image have failed (both of which have their own way of specifying
the load offset), try to determine the TEXT_OFFSET from the image after
loading it but before mapping it as a ROM mapping into the guest address
space.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1489414630-21609-1-git-send-email-ard.biesheuvel@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-04-20 17:39:17 +01:00
..
allwinner-a10.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
armv7m.c armv7m: Make bitband device take the address space to access 2017-02-28 16:18:49 +00:00
aspeed_soc.c aspeed: add a watchdog controller 2017-02-07 18:29:59 +00:00
aspeed.c aspeed: remove useless comment on controller segment size 2017-02-10 17:40:29 +00:00
bcm2835_peripherals.c bcm2835: add sdhost and gpio controllers 2017-02-28 17:10:00 +00:00
bcm2836.c hw/arm/bcm2836: Wire up CPU timer interrupts correctly 2016-04-04 17:33:51 +01:00
boot.c hw/arm/boot: take Linux/arm64 TEXT_OFFSET header field into account 2017-04-20 17:39:17 +01:00
collie.c explicitly include qom/cpu.h 2016-05-19 16:42:27 +02:00
cubieboard.c hw/arm/cubieboard hw/arm/xlnx-ep108: Fix units_per_default_bus 2017-02-21 13:10:53 +01:00
digic_boards.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
digic.c hw/char: QOM'ify digic-uart model 2016-06-06 16:59:31 +01:00
exynos4_boards.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
exynos4210.c hw/arm/exynos: Fix proper mapping of CPUs by providing real cluster ID 2017-02-28 12:08:20 +00:00
fsl-imx6.c char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
fsl-imx25.c char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
fsl-imx31.c char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
gumstix.c machine: Use type_init() to register machine classes 2016-03-16 15:34:05 -03:00
highbank.c hw/arm/highbank: Default -drive to if=ide instead of if=scsi 2017-02-21 13:10:53 +01:00
imx25_pdk.c arm: Uniquely name imx25 I2C buses. 2017-01-20 11:15:06 +00:00
integratorcp.c hw/arm/integratorcp: Support specifying features via -cpu 2017-02-07 18:29:59 +00:00
kzm.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
mainstone.c mainstone: Add mapping for dot, slash and backspace. 2016-10-04 13:28:08 +01:00
Makefile.objs palmetto-bmc: rename the Aspeed board file to aspeed.c 2016-09-22 18:13:05 +01:00
musicpal.c hw/arm: QOM'ify musicpal.c 2016-10-24 16:26:55 +01:00
netduino2.c stm32f205: Create armv7m object without using armv7m_init() 2017-02-28 16:18:49 +00:00
nseries.c char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
omap1.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
omap2.c char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
omap_sx1.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
palm.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
pxa2xx_gpio.c hw/arm: QOM'ify pxa2xx_gpio.c 2016-10-24 16:26:55 +01:00
pxa2xx_pic.c hw/arm: QOM'ify pxa2xx_pic.c 2016-05-12 13:42:08 +01:00
pxa2xx.c char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
raspi.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
realview.c hw: Deprecate -drive if=scsi with non-onboard HBAs 2017-02-21 13:17:45 +01:00
sabrelite.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
spitz.c hw: Default -drive to if=ide explicitly where it works 2017-02-21 13:10:53 +01:00
stellaris.c stellaris: Use the 'unimplemented' device for parts we don't implement 2017-02-07 18:55:15 +00:00
stm32f205_soc.c stm32f205: Rename 'nvic' local to 'armv7m' 2017-02-28 16:18:49 +00:00
strongarm.c hw/arm: QOM'ify strongarm.c 2016-10-24 16:26:56 +01:00
strongarm.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
sysbus-fdt.c sysbus: Remove ignored return value of FindSysbusDeviceFunc 2016-09-27 17:03:34 -03:00
tosa.c hw: Default -drive to if=ide explicitly where it works 2017-02-21 13:10:53 +01:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
versatilepb.c hw: Deprecate -drive if=scsi with non-onboard HBAs 2017-02-21 13:17:45 +01:00
vexpress.c hw: Default -drive to if=none instead of scsi when scsi cannot work 2017-02-21 13:10:53 +01:00
virt-acpi-build.c hw/arm/virt: Declare fwcfg as dma cache coherent in ACPI 2017-02-10 17:40:29 +00:00
virt.c hw/arm/virt: Add a user option to disallow ITS instantiation 2017-02-28 12:08:16 +00:00
xilinx_zynq.c hw: Default -drive to if=none instead of scsi when scsi cannot work 2017-02-21 13:10:53 +01:00
xlnx-ep108.c hw/arm/cubieboard hw/arm/xlnx-ep108: Fix units_per_default_bus 2017-02-21 13:10:53 +01:00
xlnx-zynqmp.c target-arm: Enable EL2 feature bit on A53 and A57 2017-01-20 11:15:10 +00:00
z2.c i2c: Allow I2C devices to NAK start events 2017-01-09 11:40:20 +00:00