ppc: Add dummy SPR_IC for POWER8

It's supposed to be an instruction counter. For now make us not
crash when accessing it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
Benjamin Herrenschmidt 2016-03-21 13:52:35 +01:00 committed by David Gibson
parent 26a7f1291b
commit 21a558bed9
2 changed files with 13 additions and 0 deletions

View File

@ -1685,6 +1685,7 @@ static inline int cpu_mmu_index (CPUPPCState *env, bool ifetch)
#define SPR_MPC_MD_DBRAM1 (0x32A) #define SPR_MPC_MD_DBRAM1 (0x32A)
#define SPR_RCPU_L2U_RA3 (0x32B) #define SPR_RCPU_L2U_RA3 (0x32B)
#define SPR_TAR (0x32F) #define SPR_TAR (0x32F)
#define SPR_IC (0x350)
#define SPR_VTB (0x351) #define SPR_VTB (0x351)
#define SPR_MMCRC (0x353) #define SPR_MMCRC (0x353)
#define SPR_440_INV0 (0x370) #define SPR_440_INV0 (0x370)

View File

@ -7924,6 +7924,17 @@ static void gen_spr_power8_pspb(CPUPPCState *env)
KVM_REG_PPC_PSPB, 0); KVM_REG_PPC_PSPB, 0);
} }
static void gen_spr_power8_ic(CPUPPCState *env)
{
#if !defined(CONFIG_USER_ONLY)
spr_register_hv(env, SPR_IC, "IC",
SPR_NOACCESS, SPR_NOACCESS,
&spr_read_generic, SPR_NOACCESS,
&spr_read_generic, &spr_write_generic,
0);
#endif
}
static void init_proc_book3s_64(CPUPPCState *env, int version) static void init_proc_book3s_64(CPUPPCState *env, int version)
{ {
gen_spr_ne_601(env); gen_spr_ne_601(env);
@ -7976,6 +7987,7 @@ static void init_proc_book3s_64(CPUPPCState *env, int version)
gen_spr_power8_tm(env); gen_spr_power8_tm(env);
gen_spr_power8_pspb(env); gen_spr_power8_pspb(env);
gen_spr_vtb(env); gen_spr_vtb(env);
gen_spr_power8_ic(env);
} }
if (version < BOOK3S_CPU_POWER8) { if (version < BOOK3S_CPU_POWER8) {
gen_spr_book3s_dbg(env); gen_spr_book3s_dbg(env);