[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 09/17] ppc: SPURR & PURR are HV writeable and privil
From: |
Cédric Le Goater |
Subject: |
[Qemu-devel] [PATCH 09/17] ppc: SPURR & PURR are HV writeable and privileged |
Date: |
Mon, 14 Mar 2016 17:56:32 +0100 |
From: Benjamin Herrenschmidt <address@hidden>
Those are HV writeable, so we provide a dummy write. We eventually need
to provide a better emulation but for now this will get us going.
We also make them non-user readable as per the architecture.
Signed-off-by: Benjamin Herrenschmidt <address@hidden>
---
target-ppc/translate_init.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 7a399b97bc6f..10f67136b609 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -293,6 +293,13 @@ static void spr_read_purr (DisasContext *ctx, int gprn,
int sprn)
{
gen_helper_load_purr(cpu_gpr[gprn], cpu_env);
}
+
+__attribute__ ((unused))
+static void spr_write_purr(DisasContext *ctx, int gprn, int sprn)
+{
+ /* Temporary placeholder */
+}
+
#endif
#endif
@@ -7828,14 +7835,16 @@ static void gen_spr_book3s_purr(CPUPPCState *env)
{
#if !defined(CONFIG_USER_ONLY)
/* PURR & SPURR: Hack - treat these as aliases for the TB for now */
- spr_register_kvm(env, SPR_PURR, "PURR",
- &spr_read_purr, SPR_NOACCESS,
- &spr_read_purr, SPR_NOACCESS,
- KVM_REG_PPC_PURR, 0x00000000);
- spr_register_kvm(env, SPR_SPURR, "SPURR",
- &spr_read_purr, SPR_NOACCESS,
- &spr_read_purr, SPR_NOACCESS,
- KVM_REG_PPC_SPURR, 0x00000000);
+ spr_register_kvm_hv(env, SPR_PURR, "PURR",
+ SPR_NOACCESS, SPR_NOACCESS,
+ &spr_read_purr, SPR_NOACCESS,
+ &spr_read_purr, &spr_write_purr,
+ KVM_REG_PPC_PURR, 0x00000000);
+ spr_register_kvm_hv(env, SPR_SPURR, "SPURR",
+ SPR_NOACCESS, SPR_NOACCESS,
+ &spr_read_purr, SPR_NOACCESS,
+ &spr_read_purr, &spr_write_purr,
+ KVM_REG_PPC_SPURR, 0x00000000);
#endif
}
--
2.1.4
- [Qemu-devel] [PATCH 05/17] ppc: Fix hreg_store_msr() so that non-HV mode cannot alter MSR:HV, (continued)
- [Qemu-devel] [PATCH 05/17] ppc: Fix hreg_store_msr() so that non-HV mode cannot alter MSR:HV, Cédric Le Goater, 2016/03/14
- [Qemu-devel] [PATCH 16/17] ppc: Add dummy CIABR SPR, Cédric Le Goater, 2016/03/14
- [Qemu-devel] [PATCH 08/17] ppc: Add placeholder SPRs for DPDES and DHDES on P8, Cédric Le Goater, 2016/03/14
- [Qemu-devel] [PATCH 09/17] ppc: SPURR & PURR are HV writeable and privileged,
Cédric Le Goater <=
- [Qemu-devel] [PATCH 14/17] ppc: Add dummy write to VTB, Cédric Le Goater, 2016/03/14
- [Qemu-devel] [PATCH 15/17] ppc: Add dummy POWER8 MPPR register, Cédric Le Goater, 2016/03/14