qemu/hw
Peter Maydell 4824a61a6d hw/arm/virt: Assume EL3 boot rom will handle PSCI if one is provided
If the user passes us an EL3 boot rom, then it is going to want to
implement the PSCI interface itself. In this case, disable QEMU's
internal PSCI implementation so it does not get in the way, and
instead start all CPUs in an SMP configuration at once (the boot
rom will catch them all and pen up the secondaries until needed).
The boot rom code is also responsible for editing the device tree
to include any necessary information about its own PSCI implementation
before eventually passing it to a NonSecure guest.

(This "start all CPUs at once" approach is what both ARM Trusted
Firmware and UEFI expect, since it is what the ARM Foundation Model
does; the other approach would be to provide some emulated hardware
for "start the secondaries" but this is simplest.)

This is a compatibility break, but I don't believe that anybody
was using a secure boot ROM with an SMP configuration. Such a setup
would be somewhat broken since there was nothing preventing nonsecure
guest code from calling the QEMU PSCI function to start up a secondary
core in a way that completely bypassed the secure world.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-id: 1456853976-7592-1-git-send-email-peter.maydell@linaro.org
2016-03-04 11:30:18 +00:00
..
9pfs all: Clean up includes 2016-02-23 12:43:05 +00:00
acpi ich9: Remove enable_tco arguments from init functions 2016-02-25 13:14:19 +02:00
alpha alpha: Clean up includes 2016-01-29 15:07:23 +00:00
arm hw/arm/virt: Assume EL3 boot rom will handle PSCI if one is provided 2016-03-04 11:30:18 +00:00
audio all: Clean up includes 2016-02-23 12:43:05 +00:00
block virtio-blk: do not use vring in dataplane 2016-02-25 13:14:18 +02:00
bt hw: Clean up includes 2016-01-29 15:07:25 +00:00
char virtio: introduce qemu_get/put_virtqueue_element 2016-02-06 20:44:08 +02:00
core loader: Add load_image_mr() to load ROM image to a MemoryRegion 2016-03-04 11:30:17 +00:00
cpu hw: Clean up includes 2016-01-29 15:07:25 +00:00
cris cris: Clean up includes 2016-01-29 15:07:24 +00:00
display qxl: lock current_async update in qxl_soft_reset 2016-03-01 07:51:32 +01:00
dma etraxfs_dma: Dont forward zero-length payload to clients 2016-02-20 00:17:48 +01:00
gpio ARM: PL061: Checking register r/w accesses to reserved area 2016-02-26 15:09:42 +00:00
i2c hw: Clean up includes 2016-01-29 15:07:25 +00:00
i386 q35: No need to check gigabyte_align 2016-02-25 13:14:19 +02:00
ide ahci: prohibit "restarting" the FIS or CLB engines 2016-02-10 13:29:40 -05:00
input qapi: rename input buttons 2016-03-01 08:19:07 +01:00
intc xics: report errors with the QEMU Error API 2016-02-28 16:19:02 +11:00
ipack hw: Clean up includes 2016-01-29 15:07:25 +00:00
ipmi ipmi: sensor number should not exceed MAX_SENSORS 2016-02-16 16:41:25 +01:00
isa ich9: Remove enable_tco arguments from init functions 2016-02-25 13:14:19 +02:00
lm32 lm32: Clean up includes 2016-01-29 15:07:22 +00:00
m68k m68k: Clean up includes 2016-01-29 15:07:24 +00:00
mem move get_current_ram_size to virtio-balloon.c 2016-02-23 12:55:16 +02:00
microblaze microblaze: Clean up includes 2016-01-28 11:13:13 +00:00
mips magnum: disable floppy DMA for now 2016-02-03 11:28:57 -05:00
misc dbdma: warn when using unassigned channel 2016-02-28 16:19:02 +11:00
moxie moxie: Clean up includes 2016-01-29 15:07:25 +00:00
net all: Clean up includes 2016-02-23 12:43:05 +00:00
nvram fw_cfg: unbreak migration compatibility for 2.4 and earlier machines 2016-02-26 10:06:40 +01:00
openrisc openrisc: Clean up includes 2016-01-29 15:07:24 +00:00
pci pci core: function pci_bus_init() cleanup 2016-02-25 13:14:18 +02:00
pci-bridge aer: impove pcie_aer_init to support vfio device 2016-02-19 09:42:28 -07:00
pci-host vhost, virtio, pci, pxe 2016-02-19 10:50:37 +00:00
pcmcia hw: Clean up includes 2016-01-29 15:07:25 +00:00
ppc xics: report errors with the QEMU Error API 2016-02-28 16:19:02 +11:00
s390x s390x/css: only suspend when enabled by orb 2016-03-01 12:15:29 +01:00
scsi virtio-scsi: do not use vring in dataplane 2016-02-25 13:14:19 +02:00
sd sdhci: Implement DeviceClass reset 2016-03-04 11:30:17 +00:00
sh4 sh4: Clean up includes 2016-01-29 15:07:24 +00:00
smbios hw: Clean up includes 2016-01-29 15:07:25 +00:00
sparc dma: remove now useless DMA_* functions 2016-02-03 11:28:58 -05:00
sparc64 dma: remove now useless DMA_* functions 2016-02-03 11:28:58 -05:00
ssi hw: Clean up includes 2016-01-29 15:07:25 +00:00
timer tusb6010: move from hw/timer to hw/usb 2016-02-23 10:38:00 +01:00
tpm hw: Clean up includes 2016-01-29 15:07:25 +00:00
tricore tricore: Clean up includes 2016-01-29 15:07:25 +00:00
unicore32 unicore: Clean up includes 2016-01-29 15:07:22 +00:00
usb usb-redirect: Avoid double free of data 2016-02-29 11:45:26 +01:00
vfio all: Clean up includes 2016-02-23 12:43:05 +00:00
virtio virtio-rng: ask for more data if queue is not fully drained 2016-03-03 17:42:26 +05:30
watchdog watchdog/diag288: avoid race condition on expired watchdog 2016-03-01 12:15:28 +01:00
xen xen: drop XenXC and associated interface wrappers 2016-02-10 12:01:24 +00:00
xenpv xen: Clean up includes 2016-01-29 15:07:23 +00:00
xtensa xtensa: Clean up includes 2016-01-29 15:07:24 +00:00
Makefile.objs Add a base IPMI interface 2015-12-22 18:39:19 +02:00