qemu-e2k/hw/arm
Hongbo Zhang 64580903c2 hw/arm: Add arm SBSA reference machine, skeleton part
For AArch64, the existing "virt" machine is primarily meant to
run on KVM and execute virtualization workloads, but we need an
environment as faithful as possible to physical hardware, for supporting
firmware and OS development for physical Aarch64 machines.

This patch introduces new machine type 'sbsa-ref' with main features:
 - Based on 'virt' machine type.
 - A new memory map.
 - CPU type cortex-a57.
 - EL2 and EL3 are enabled.
 - GIC version 3.
 - System bus AHCI controller.
 - System bus EHCI controller.
 - CDROM and hard disc on AHCI bus.
 - E1000E ethernet card on PCIE bus.
 - VGA display adaptor on PCIE bus.
 - No virtio devices.
 - No fw_cfg device.
 - No ACPI table supplied.
 - Only minimal device tree nodes.

Arm Trusted Firmware and UEFI porting to this are done accordingly,
and the firmware should supply ACPI tables to the guest OS.  The
minimal device tree nodes supplied by QEMU for this platform are only
to pass the dynamic info reflecting command line input to firmware,
not for loading the guest OS.

To make the review easier, this task is split into two patches, the
fundamental skeleton part and the peripheral devices part; this patch is
the first part.

Signed-off-by: Hongbo Zhang <hongbo.zhang@linaro.org>
Message-id: 1561890034-15921-2-git-send-email-hongbo.zhang@linaro.org
[PMM: commit message tweaks; moved some bits between patch 1 and 2
 to ensure patch 1 builds cleanly; removed unneeded lines from
 Kconfig stanza; only provide board for qemu-system-aarch64, not
 qemu-system-arm; added MAINTAINERS entry]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-07-01 17:29:00 +01:00
..
Kconfig hw/arm: Add arm SBSA reference machine, skeleton part 2019-07-01 17:29:00 +01:00
Makefile.objs hw/arm: Add arm SBSA reference machine, skeleton part 2019-07-01 17:29:00 +01: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 hw/arm: Correctly disable FPU/DSP for some ARMSSE-based boards 2019-06-17 15:12:25 +01:00
armv7m.c hw/arm/armv7m: Forward "vfp" and "dsp" properties to CPU 2019-06-17 15:12:25 +01:00
aspeed.c aspeed: Add support for the swift-bmc board 2019-07-01 17:29:00 +01:00
aspeed_soc.c aspeed: Link SCU to the watchdog 2019-07-01 17:29:00 +01: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: fix direct kernel boot with initrd 2019-07-01 17:28:59 +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 i.mx7d: Add no-op/unimplemented PCIE PHY IP block 2019-07-01 17:28:59 +01: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 hw/arm/msf2-som: Exit when the cpu is not the expected one 2019-07-01 17:28:59 +01:00
musca.c hw/arm: Correctly disable FPU/DSP for some ARMSSE-based boards 2019-06-17 15:12:25 +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
sbsa-ref.c hw/arm: Add arm SBSA reference machine, skeleton part 2019-07-01 17:29:00 +01: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 hw/arm/virt: Add support for Cortex-A7 2019-07-01 17:28:59 +01: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