Message ID | 1456963699-461-1-git-send-email-aik@ozlabs.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Mar 03, 2016 at 11:08:19AM +1100, Alexey Kardashevskiy wrote: > This adds a new POWER8+NVLink CPU PVR which core is identical to POWER8 > but has a different PVR. The only available machine now has PVR > pvr 004c 0100 so this defines "POWER8NVL" alias as v1.0. > > The corresponding kernel commit is > https://github.com/torvalds/linux/commit/ddee09c099c3 > "powerpc: Add PVR for POWER8NVL processor" > > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Applied, thanks. > --- > target-ppc/cpu-models.c | 3 +++ > target-ppc/cpu-models.h | 2 ++ > target-ppc/translate_init.c | 3 +++ > 3 files changed, 8 insertions(+) > > diff --git a/target-ppc/cpu-models.c b/target-ppc/cpu-models.c > index ed005d7..5209e63 100644 > --- a/target-ppc/cpu-models.c > +++ b/target-ppc/cpu-models.c > @@ -1143,6 +1143,8 @@ > "POWER8E v2.1") > POWERPC_DEF("POWER8_v2.0", CPU_POWERPC_POWER8_v20, POWER8, > "POWER8 v2.0") > + POWERPC_DEF("POWER8NVL_v1.0",CPU_POWERPC_POWER8NVL_v10, POWER8, > + "POWER8NVL v1.0") > POWERPC_DEF("970_v2.2", CPU_POWERPC_970_v22, 970, > "PowerPC 970 v2.2") > POWERPC_DEF("970fx_v1.0", CPU_POWERPC_970FX_v10, 970, > @@ -1392,6 +1394,7 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { > { "POWER7+", "POWER7+_v2.1" }, > { "POWER8E", "POWER8E_v2.1" }, > { "POWER8", "POWER8_v2.0" }, > + { "POWER8NVL", "POWER8NVL_v1.0" }, > { "970", "970_v2.2" }, > { "970fx", "970fx_v3.1" }, > { "970mp", "970mp_v1.1" }, > diff --git a/target-ppc/cpu-models.h b/target-ppc/cpu-models.h > index 2992427..f21a44c 100644 > --- a/target-ppc/cpu-models.h > +++ b/target-ppc/cpu-models.h > @@ -560,6 +560,8 @@ enum { > CPU_POWERPC_POWER8E_v21 = 0x004B0201, > CPU_POWERPC_POWER8_BASE = 0x004D0000, > CPU_POWERPC_POWER8_v20 = 0x004D0200, > + CPU_POWERPC_POWER8NVL_BASE = 0x004C0000, > + CPU_POWERPC_POWER8NVL_v10 = 0x004C0100, > CPU_POWERPC_970_v22 = 0x00390202, > CPU_POWERPC_970FX_v10 = 0x00391100, > CPU_POWERPC_970FX_v20 = 0x003C0200, > diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c > index bd0cffc..927bd24 100644 > --- a/target-ppc/translate_init.c > +++ b/target-ppc/translate_init.c > @@ -8219,6 +8219,9 @@ static void init_proc_POWER8(CPUPPCState *env) > > static bool ppc_pvr_match_power8(PowerPCCPUClass *pcc, uint32_t pvr) > { > + if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER8NVL_BASE) { > + return true; > + } > if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER8E_BASE) { > return true; > }
diff --git a/target-ppc/cpu-models.c b/target-ppc/cpu-models.c index ed005d7..5209e63 100644 --- a/target-ppc/cpu-models.c +++ b/target-ppc/cpu-models.c @@ -1143,6 +1143,8 @@ "POWER8E v2.1") POWERPC_DEF("POWER8_v2.0", CPU_POWERPC_POWER8_v20, POWER8, "POWER8 v2.0") + POWERPC_DEF("POWER8NVL_v1.0",CPU_POWERPC_POWER8NVL_v10, POWER8, + "POWER8NVL v1.0") POWERPC_DEF("970_v2.2", CPU_POWERPC_970_v22, 970, "PowerPC 970 v2.2") POWERPC_DEF("970fx_v1.0", CPU_POWERPC_970FX_v10, 970, @@ -1392,6 +1394,7 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { { "POWER7+", "POWER7+_v2.1" }, { "POWER8E", "POWER8E_v2.1" }, { "POWER8", "POWER8_v2.0" }, + { "POWER8NVL", "POWER8NVL_v1.0" }, { "970", "970_v2.2" }, { "970fx", "970fx_v3.1" }, { "970mp", "970mp_v1.1" }, diff --git a/target-ppc/cpu-models.h b/target-ppc/cpu-models.h index 2992427..f21a44c 100644 --- a/target-ppc/cpu-models.h +++ b/target-ppc/cpu-models.h @@ -560,6 +560,8 @@ enum { CPU_POWERPC_POWER8E_v21 = 0x004B0201, CPU_POWERPC_POWER8_BASE = 0x004D0000, CPU_POWERPC_POWER8_v20 = 0x004D0200, + CPU_POWERPC_POWER8NVL_BASE = 0x004C0000, + CPU_POWERPC_POWER8NVL_v10 = 0x004C0100, CPU_POWERPC_970_v22 = 0x00390202, CPU_POWERPC_970FX_v10 = 0x00391100, CPU_POWERPC_970FX_v20 = 0x003C0200, diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c index bd0cffc..927bd24 100644 --- a/target-ppc/translate_init.c +++ b/target-ppc/translate_init.c @@ -8219,6 +8219,9 @@ static void init_proc_POWER8(CPUPPCState *env) static bool ppc_pvr_match_power8(PowerPCCPUClass *pcc, uint32_t pvr) { + if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER8NVL_BASE) { + return true; + } if ((pvr & CPU_POWERPC_POWER_SERVER_MASK) == CPU_POWERPC_POWER8E_BASE) { return true; }
This adds a new POWER8+NVLink CPU PVR which core is identical to POWER8 but has a different PVR. The only available machine now has PVR pvr 004c 0100 so this defines "POWER8NVL" alias as v1.0. The corresponding kernel commit is https://github.com/torvalds/linux/commit/ddee09c099c3 "powerpc: Add PVR for POWER8NVL processor" Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- target-ppc/cpu-models.c | 3 +++ target-ppc/cpu-models.h | 2 ++ target-ppc/translate_init.c | 3 +++ 3 files changed, 8 insertions(+)