qemu/hw/arm
Ard Biesheuvel cb51ac2ffe hw/arm/virt: generate 64-bit addressable ACPI objects
Our current ACPI table generation code limits the placement of ACPI
tables to 32-bit addressable memory, in order to be able to emit the
root pointer (RSDP) and root table (RSDT) using table types from the
ACPI 1.0 days.

Since ARM was not supported by ACPI before version 5.0, it makes sense
to lift this restriction. This is not crucial for mach-virt, which is
guaranteed to have some memory available below the 4 GB mark, but it
is a nice to have for QEMU machines that do not have any 32-bit
addressable memory, which is not uncommon for real world 64-bit ARM
systems.

Since we already emit a version of the RSDP root pointer that has a
secondary 64-bit wide address field for the 64-bit root table (XSDT),
all we need to do is replace the RSDT generation with the generation
of an XSDT table, and use a different slot in the FADT table to refer
to the DSDT.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
2017-05-10 22:04:23 +03:00
..
allwinner-a10.c arm: remove remaining cannot_destroy_with_object_finalize_yet 2017-04-20 17:51:32 +02: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 FTGMAC100 nic 2017-04-25 19:17:25 +08: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 arm: remove remaining cannot_destroy_with_object_finalize_yet 2017-04-20 17:51:32 +02: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 arm: remove remaining cannot_destroy_with_object_finalize_yet 2017-04-20 17:51:32 +02:00
exynos4_boards.c hw/arm/exynos: Convert fprintf to qemu_log_mask/error_report 2017-04-20 17:39:17 +01:00
exynos4210.c hw/arm/exynos: Add generic SDHCI devices 2017-04-25 11:17:49 +01:00
fsl-imx6.c arm: remove remaining cannot_destroy_with_object_finalize_yet 2017-04-20 17:51:32 +02:00
fsl-imx25.c arm: remove remaining cannot_destroy_with_object_finalize_yet 2017-04-20 17:51:32 +02:00
fsl-imx31.c arm: remove remaining cannot_destroy_with_object_finalize_yet 2017-04-20 17:51:32 +02: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 hw/arm: Qomify pxa2xx.c 2017-04-20 17:39:17 +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: Don't hw_error() on bad register accesses 2017-04-20 17:39:17 +01: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: generate 64-bit addressable ACPI objects 2017-05-10 22:04:23 +03: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 qdev patches for 2017-04-21 2017-04-21 11:42:03 +01:00
z2.c i2c: Allow I2C devices to NAK start events 2017-01-09 11:40:20 +00:00