qemu-patch-raspberry4/target/ppc
David Gibson 1b99e029c5 target/ppc: Introduce ppc_hash64_use_vrma() helper
When running guests under a hypervisor, the hypervisor obviously needs to
be protected from guest accesses even if those are in what the guest
considers real mode (translation off).  The POWER hardware provides two
ways of doing that: The old way has guest real mode accesses simply offset
and bounds checked into host addresses.  It works, but requires that a
significant chunk of the guest's memory - the RMA - be physically
contiguous in the host, which is pretty inconvenient.  The new way, known
as VRMA, has guest real mode accesses translated in roughly the normal way
but with some special parameters.

In POWER7 and POWER8 the LPCR[VPM0] bit selected between the two modes, but
in POWER9 only VRMA mode is supported and LPCR[VPM0] no longer exists.  We
handle that difference in behaviour in ppc_hash64_set_isi().. but not in
other places that we blindly check LPCR[VPM0].

Correct those instances with a new helper to tell if we should be in VRMA
mode.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2020-03-17 09:41:15 +11:00
..
translate target/ppc: Fix typo in comments 2020-02-21 09:15:04 +11:00
arch_dump.c target/ppc: Add helper_mfvscr 2019-02-18 11:00:44 +11:00
compat.c target/ppc: Add POWER10 DD1.0 model information 2019-12-17 10:39:48 +11:00
cpu-models.c target/ppc: Add POWER10 DD1.0 model information 2019-12-17 10:39:48 +11:00
cpu-models.h target/ppc: Add POWER10 DD1.0 model information 2019-12-17 10:39:48 +11:00
cpu-param.h tcg: Split out target/arch/cpu-param.h 2019-06-10 07:03:34 -07:00
cpu-qom.h powerpc/spapr: Add host threads parameter to ibm,get_system_parameter 2019-08-29 09:46:07 +10:00
cpu.c target/ppc: support for 32-bit carry and overflow 2017-03-01 11:23:39 +11:00
cpu.h ppc: Remove stub support for 32-bit hypervisor mode 2020-03-17 09:41:14 +11:00
dfp_helper.c target/ppc: remove unnecessary if() around calls to set_dfp{64,128}() in DFP macros 2019-10-04 19:08:21 +10:00
excp_helper.c target/ppc: add support for Hypervisor Facility Unavailable Exception 2020-02-02 14:07:57 +11:00
fpu_helper.c target/ppc: Fix typo in comments 2020-02-21 09:15:04 +11:00
gdbstub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
helper.h target/ppc: Add privileged message send facilities 2020-02-02 14:07:57 +11:00
helper_regs.h ppc: Ignore the CPU_INTERRUPT_EXITTB interrupt with KVM 2019-12-17 10:39:48 +11:00
int_helper.c target/ppc: use Vsr macros in BCD helpers 2019-10-04 19:08:21 +10:00
internal.h ppc: Add support for 'mffscrn','mffscrni' instructions 2019-10-04 10:25:23 +10:00
kvm-stub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
kvm.c target/ppc: Build rtas error log upon an MCE 2020-02-03 11:33:10 +11:00
kvm_ppc.h target/ppc: Handle NMI guest exit 2020-02-03 11:33:10 +11:00
machine.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
Makefile.objs build: remove CONFIG_LIBDECNUMBER 2017-10-16 18:03:52 +02:00
mem_helper.c target/ppc: Use probe_write for DCBZ 2020-02-03 11:33:11 +11:00
mfrom_table.inc.c target/ppc: Style fixes for mfrom_table.inc.c & mfrom_table_gen.c 2019-04-26 10:42:38 +10:00
mfrom_table_gen.c target/ppc: Style fixes for mfrom_table.inc.c & mfrom_table_gen.c 2019-04-26 10:42:38 +10:00
misc_helper.c target/ppc: add support for Hypervisor Facility Unavailable Exception 2020-02-02 14:07:57 +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 Clean up header guards that don't match their file name 2019-05-13 08:58:55 +02:00
mmu-hash32.c ppc/hash32: Rework R and C bit updates 2019-04-26 11:37:57 +10: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: Introduce ppc_hash64_use_vrma() helper 2020-03-17 09:41:15 +11:00
mmu-hash64.h ppc/hash64: Rework R and C bit updates 2019-04-26 11:37:57 +10:00
mmu-radix64.c ppc/pnv: Add support for HRMOR on Radix host 2020-02-02 14:07:57 +11:00
mmu-radix64.h target/ppc: Rename PATB/PATBE -> PATE 2019-02-26 09:21:25 +11:00
mmu_helper.c target/ppc: Rewrite a fall through comment 2019-08-21 10:57:28 +02:00
monitor.c hmp: Move hmp.h to include/monitor/ 2019-07-02 07:19:45 +02:00
timebase_helper.c target/ppc: Add SPR TBU40 2019-12-17 10:39:48 +11:00
trace-events target/ppc: Handle NMI guest exit 2020-02-03 11:33:10 +11:00
translate.c target/ppc: Add privileged message send facilities 2020-02-02 14:07:57 +11:00
translate_init.inc.c ppc: Remove stub of PPC970 HID4 implementation 2020-03-17 09:41:14 +11:00
user_only_helper.c target/ppc: Convert to CPUClass::tlb_fill 2019-05-10 11:12:50 -07:00