]> git.proxmox.com Git - mirror_qemu.git/commit - configure
ppc/spapr: Receive and store device tree blob from SLOF
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Fri, 21 Dec 2018 00:34:48 +0000 (01:34 +0100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Tue, 8 Jan 2019 22:28:13 +0000 (09:28 +1100)
commitfea35ca4b8e68b4fae5df7a13d8f300d9abfb40a
treed41b48be6477f6b418c9b11bbdc866403c3e5483
parentc24ba3d0a34f68ad2c6bf1a15bc43770005f6cc0
ppc/spapr: Receive and store device tree blob from SLOF

SLOF receives a device tree and updates it with various properties
before switching to the guest kernel and QEMU is not aware of any changes
made by SLOF. Since there is no real RTAS (QEMU implements it), it makes
sense to pass the SLOF final device tree to QEMU to let it implement
RTAS related tasks better, such as PCI host bus adapter hotplug.

Specifially, now QEMU can find out the actual XICS phandle (for PHB
hotplug) and the RTAS linux,rtas-entry/base properties (for firmware
assisted NMI - FWNMI).

This stores the initial DT blob in the sPAPR machine and replaces it
in the KVMPPC_H_UPDATE_DT (new private hypercall) handler.

This adds an @update_dt_enabled machine property to allow backward
migration.

SLOF already has a hypercall since
https://github.com/aik/SLOF/commit/e6fc84652c9c0073f9183

This makes use of the new fdt_check_full() helper. In order to allow
the configure script to pick the correct DTC version, this adjusts
the DTC presense test.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
configure
hw/ppc/spapr.c
hw/ppc/spapr_hcall.c
hw/ppc/trace-events
include/hw/ppc/spapr.h