qemu/target/ppc
Suraj Jitindar Singh 7d050527e3 target/ppc: Implement large decrementer support for KVM
Implement support to allow KVM guests to take advantage of the large
decrementer introduced on POWER9 cpus.

To determine if the host can support the requested large decrementer
size, we check it matches that specified in the ibm,dec-bits device-tree
property. We also need to enable it in KVM by setting the LPCR_LD bit in
the LPCR. Note that to do this we need to try and set the bit, then read
it back to check the host allowed us to set it, if so we can use it but
if we were unable to set it the host cannot support it and we must not
use the large decrementer.

Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20190301024317.22137-3-sjitindarsingh@gmail.com>
[dwg: Small style fixes]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-03-12 12:07:49 +11:00
..
translate target/ppc: convert vmin* and vmax* to vector operations 2019-02-18 11:00:44 +11:00
arch_dump.c target/ppc: Add helper_mfvscr 2019-02-18 11:00:44 +11:00
compat.c target/ppc: Allow cpu compatiblity checks based on type, not instance 2018-06-21 21:22:53 +10:00
cpu-models.c target/ppc/cpu-models: Re-group the 970 CPUs together again 2018-09-25 11:12:25 +10:00
cpu-models.h target/ppc: Add POWER9 DD2.0 model information 2017-10-17 10:34:00 +11:00
cpu-qom.h target/ppc: Implement large decrementer support for TCG 2019-03-12 12:07:49 +11:00
cpu.c target/ppc: support for 32-bit carry and overflow 2017-03-01 11:23:39 +11:00
cpu.h target/ppc: Implement large decrementer support for TCG 2019-03-12 12:07:49 +11:00
dfp_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
excp_helper.c target/ppc: Add support for LPCR:HEIC on POWER9 2019-02-26 09:21:25 +11:00
fpu_helper.c target/ppc: Split out float_invalid_cvt 2018-11-08 12:04:40 +11:00
gdbstub.c target/ppc: Enable reporting of SPRs to GDB 2019-02-17 21:54:02 +11:00
helper_regs.h target/ppc: Fix synchronization of mttcg with broadcast TLB flushes 2019-02-26 09:21:25 +11:00
helper.h target/ppc: Flush the TLB locally when the LPIDR is written 2019-02-26 09:21:25 +11:00
int_helper.c target/ppc: convert vmin* and vmax* to vector operations 2019-02-18 11:00:44 +11:00
internal.h target/ppc: implement complete set of Vsr* macros 2019-02-04 18:44:18 +11:00
kvm_ppc.h target/ppc: Implement large decrementer support for KVM 2019-03-12 12:07:49 +11:00
kvm-stub.c openpic: move KVM-specific declarations into separate openpic_kvm.h file 2018-03-06 13:16:29 +11:00
kvm.c target/ppc: Implement large decrementer support for KVM 2019-03-12 12:07:49 +11:00
machine.c target/ppc: Use mtvscr/mfvscr for vmstate 2019-02-18 11:00:44 +11:00
Makefile.objs build: remove CONFIG_LIBDECNUMBER 2017-10-16 18:03:52 +02:00
mem_helper.c target/ppc: add external PID support 2018-11-08 12:04:40 +11:00
mfrom_table_gen.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
mfrom_table.inc.c rename included C files to foo.inc.c, remove osdep.h 2018-05-11 14:33:40 +02:00
misc_helper.c target/ppc: Flush the TLB locally when the LPIDR is written 2019-02-26 09:21:25 +11:00
mmu_helper.c target/ppc/mmu: Use LPCR:HR to chose radix vs. hash translation 2019-02-26 09:21:25 +11:00
mmu-book3s-v3.c target/ppc: Support for POWER9 native hash 2019-02-26 09:21:25 +11:00
mmu-book3s-v3.h target/ppc: Support for POWER9 native hash 2019-02-26 09:21:25 +11:00
mmu-hash32.c target/ppc: Fix ordering of hash MMU accesses 2019-02-26 09:21:25 +11:00
mmu-hash32.h target/ppc: Manage external HPT via virtual hypervisor 2017-03-01 11:23:39 +11:00
mmu-hash64.c target/ppc: Implement large decrementer support for TCG 2019-03-12 12:07:49 +11:00
mmu-hash64.h target/ppc: Support for POWER9 native hash 2019-02-26 09:21:25 +11:00
mmu-radix64.c target/ppc: Basic POWER9 bare-metal radix MMU support 2019-02-26 09:21:25 +11:00
mmu-radix64.h target/ppc: Rename PATB/PATBE -> PATE 2019-02-26 09:21:25 +11:00
monitor.c target/ppc: move FP and VMX registers into aligned vsr register array 2019-01-09 09:28:14 +11:00
timebase_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
trace-events docs: fix broken paths to docs/devel/tracing.txt 2017-07-31 13:12:53 +03:00
translate_init.inc.c target/ppc: Implement large decrementer support for TCG 2019-03-12 12:07:49 +11:00
translate.c target/ppc: Implement large decrementer support for TCG 2019-03-12 12:07:49 +11:00
user_only_helper.c accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00