qemu/hw/ppc
Sam Bobroff 9fb4541f58 spapr: Enable ISA 3.0 MMU mode selection via CAS
Add the new node, /chosen/ibm,arch-vec-5-platform-support to the
device tree. This allows the guest to determine which modes are
supported by the hypervisor.

Update the option vector processing in h_client_architecture_support()
to handle the new MMU bits. This allows guests to request hash or
radix mode and QEMU to create the guest's HPT at this time if it is
necessary but hasn't yet been done.  QEMU will terminate the guest if
it requests an unavailable mode, as required by the architecture.

Extend the ibm,pa-features node with the new ISA 3.0 values
and set the radix bit if KVM supports radix mode. This probably won't
be used directly by guests to determine the availability of radix mode
(that is indicated by the new node added above) but the architecture
requires that it be set when the hardware supports it.

If QEMU is using KVM, and KVM is capable of running in radix mode,
guests can be run in real-mode without allocating a HPT (because KVM
will use a minimal RPT). So in this case, we avoid creating the HPT
at reset time and later (during CAS) create it if it is necessary.

ISA 3.0 guests will now begin to call h_register_process_table(),
which has been added previously.

Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
[dwg: Strip some unneeded prefix from error messages]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2017-04-26 12:00:41 +10:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c target-ppc: Add MMU model check for booke machines 2017-02-02 09:30:06 +11:00
e500.h target-ppc: Eliminate redundant and incorrect function booke206_page_size_to_tlb 2016-07-01 09:57:01 +10:00
e500plat.c dma: do not depend on kvm_enabled() 2016-05-19 16:42:28 +02:00
fdt.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
mac_newworld.c mac99: replace debug printf with trace points 2017-02-22 11:28:28 +11:00
mac_oldworld.c hw: Default -drive to if=ide explicitly where it works 2017-02-21 13:10:53 +01:00
mac.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
Makefile.objs prep: add IBM RS/6000 7020 (40p) memory controller 2017-01-31 10:10:13 +11:00
mpc8544_guts.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
mpc8544ds.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
pnv_core.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
pnv_lpc.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
pnv_xscom.c kvm: move cpu synchronization code 2017-01-19 22:07:46 +01:00
pnv.c hw/ppc/pnv: Classify the "PowerNV Chip" devices as CPU devices 2017-04-26 12:00:41 +10:00
ppc4xx_devs.c qemu-common: push cpu.h inclusion out of qemu-common.h 2016-05-19 16:42:29 +02:00
ppc4xx_pci.c ppc4xx: replace debug printf with trace points 2017-02-22 11:28:28 +11:00
ppc405_boards.c clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
ppc405_uc.c hw/ppc/ppc405_uc.c: Avoid integer overflows 2017-02-22 14:28:53 +11:00
ppc405.h Remove unused function declarations 2016-09-15 15:32:22 +03:00
ppc440_bamboo.c target-ppc: Add MMU model check for booke machines 2017-02-02 09:30:06 +11:00
ppc_booke.c ppc: Prevent inifnite loop in decrementer auto-reload. 2017-01-31 10:10:14 +11:00
ppc.c tcg: drop global lock during TCG code execution 2017-02-24 10:32:45 +00:00
ppce500_spin.c hw/ppc: QOM'ify ppce500_spin.c 2017-01-31 10:10:13 +11:00
prep_systemio.c prep: add PReP System I/O 2017-01-31 10:10:13 +11:00
prep.c hw: Default -drive to if=ide explicitly where it works 2017-02-21 13:10:53 +01:00
rs6000_mc.c prep: add IBM RS/6000 7020 (40p) memory controller 2017-01-31 10:10:13 +11:00
spapr_cpu_core.c spapr: ensure that all threads within core are on the same NUMA node 2017-03-06 10:32:53 +11:00
spapr_drc.c spapr: fix memory hot-unplugging 2017-03-29 11:35:16 +11:00
spapr_events.c ppc/spapr: QOM'ify sPAPRRTCState 2017-04-26 12:00:41 +10:00
spapr_hcall.c spapr: Enable ISA 3.0 MMU mode selection via CAS 2017-04-26 12:00:41 +10:00
spapr_iommu.c target-ppc: kvm: make use of KVM_CREATE_SPAPR_TCE_64 2017-04-26 12:00:41 +10:00
spapr_ovec.c spapr: replace debug printf with trace points 2017-02-22 11:28:28 +11:00
spapr_pci_vfio.c Use #include "..." for our own headers, <...> for others 2016-07-12 16:19:16 +02:00
spapr_pci.c pseries: Don't expose PCIe extended config space on older machine types 2017-03-14 11:54:17 +11:00
spapr_rng.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
spapr_rtas_ddw.c spapr_pci/spapr_pci_vfio: Support Dynamic DMA Windows (DDW) 2016-07-05 14:31:08 +10:00
spapr_rtas.c report guest crash information in GUEST_PANICKED event 2017-02-16 15:30:49 +01:00
spapr_rtc.c ppc/spapr: QOM'ify sPAPRRTCState 2017-04-26 12:00:41 +10:00
spapr_vio.c ppc/xics: store the ICS object under the sPAPR machine 2017-03-01 11:23:39 +11:00
spapr.c spapr: Enable ISA 3.0 MMU mode selection via CAS 2017-04-26 12:00:41 +10:00
trace-events spapr: replace debug printf with trace points 2017-02-22 11:28:28 +11:00
virtex_ml507.c target-ppc: Add MMU model check for booke machines 2017-02-02 09:30:06 +11:00