The POWER9 DD1 and POWER10 DD1 chips are not public and are no longer of
any use in QEMU. Remove them.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
hw/ppc/spapr_cpu_core.c | 2 --
target/ppc/cpu-models.c | 4 ----
target/ppc/cpu_init.c | 7 ++-----
target/ppc/kvm.c | 11 -----------
4 files changed, 2 insertions(+), 22 deletions(-)
diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
index 40b7c52f7f..50523ead25 100644
--- a/hw/ppc/spapr_cpu_core.c
+++ b/hw/ppc/spapr_cpu_core.c
@@ -394,10 +394,8 @@ static const TypeInfo spapr_cpu_core_type_infos[] = {
DEFINE_SPAPR_CPU_CORE_TYPE("power8_v2.0"),
DEFINE_SPAPR_CPU_CORE_TYPE("power8e_v2.1"),
DEFINE_SPAPR_CPU_CORE_TYPE("power8nvl_v1.0"),
- DEFINE_SPAPR_CPU_CORE_TYPE("power9_v1.0"),
DEFINE_SPAPR_CPU_CORE_TYPE("power9_v2.0"),
DEFINE_SPAPR_CPU_CORE_TYPE("power9_v2.2"),
- DEFINE_SPAPR_CPU_CORE_TYPE("power10_v1.0"),
DEFINE_SPAPR_CPU_CORE_TYPE("power10_v2.0"),
#ifdef CONFIG_KVM
DEFINE_SPAPR_CPU_CORE_TYPE("host"),
diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c
index 36e465b390..f2301b43f7 100644
--- a/target/ppc/cpu-models.c
+++ b/target/ppc/cpu-models.c
@@ -728,14 +728,10 @@
"POWER8 v2.0")
POWERPC_DEF("power8nvl_v1.0", CPU_POWERPC_POWER8NVL_v10, POWER8,
"POWER8NVL v1.0")
- POWERPC_DEF("power9_v1.0", CPU_POWERPC_POWER9_DD1, POWER9,
- "POWER9 v1.0")
POWERPC_DEF("power9_v2.0", CPU_POWERPC_POWER9_DD20, POWER9,
"POWER9 v2.0")
POWERPC_DEF("power9_v2.2", CPU_POWERPC_POWER9_DD22, POWER9,
"POWER9 v2.2")
- POWERPC_DEF("power10_v1.0", CPU_POWERPC_POWER10_DD1, POWER10,
- "POWER10 v1.0")
POWERPC_DEF("power10_v2.0", CPU_POWERPC_POWER10_DD20, POWER10,
"POWER10 v2.0")
#endif /* defined (TARGET_PPC64) */
diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index 1d3d1db7c3..572cbdf25f 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -6350,10 +6350,7 @@ static bool ppc_pvr_match_power9(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
return false;
}
- if ((pvr & 0x0f00) == 0x100) {
- /* DD1.x always matches power9_v1.0 */
- return true;
- } else if ((pvr & 0x0f00) == 0x200) {
+ if ((pvr & 0x0f00) == 0x200) {
if ((pvr & 0xf) < 2) {
/* DD2.0, DD2.1 match power9_v2.0 */
if ((pcc->pvr & 0xf) == 0) {
@@ -6536,7 +6533,7 @@ static bool ppc_pvr_match_power10(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
}
if ((pvr & 0x0f00) == (pcc->pvr & 0x0f00)) {
- /* Major DD version matches to power10_v1.0 and power10_v2.0 */
+ /* Major DD version matches power10_v2.0 */
return true;
}
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index bcf30a5400..525fbe3892 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -2369,17 +2369,6 @@ static void kvmppc_host_cpu_class_init(ObjectClass *oc, void *data)
#if defined(TARGET_PPC64)
pcc->radix_page_info = kvmppc_get_radix_page_info();
-
- if ((pcc->pvr & 0xffffff00) == CPU_POWERPC_POWER9_DD1) {
- /*
- * POWER9 DD1 has some bugs which make it not really ISA 3.00
- * compliant. More importantly, advertising ISA 3.00
- * architected mode may prevent guests from activating
- * necessary DD1 workarounds.
- */
- pcc->pcr_supported &= ~(PCR_COMPAT_3_00 | PCR_COMPAT_2_07
- | PCR_COMPAT_2_06 | PCR_COMPAT_2_05);
- }
#endif /* defined(TARGET_PPC64) */
}
--
2.42.0
On 3/12/24 00:21, Nicholas Piggin wrote:
> The POWER9 DD1 and POWER10 DD1 chips are not public and are no longer of
> any use in QEMU. Remove them.
>
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> hw/ppc/spapr_cpu_core.c | 2 --
> target/ppc/cpu-models.c | 4 ----
> target/ppc/cpu_init.c | 7 ++-----
> target/ppc/kvm.c | 11 -----------
> 4 files changed, 2 insertions(+), 22 deletions(-)
Do we want to squash in removal of the macro as well?
diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
index 0229ef3a9a..a5167873ae 100644
--- a/target/ppc/cpu-models.h
+++ b/target/ppc/cpu-models.h
@@ -348,7 +348,6 @@ enum {
CPU_POWERPC_POWER8NVL_BASE = 0x004C0000,
CPU_POWERPC_POWER8NVL_v10 = 0x004C0100,
CPU_POWERPC_POWER9_BASE = 0x004E0000,
- CPU_POWERPC_POWER9_DD1 = 0x004E1100,
CPU_POWERPC_POWER9_DD20 = 0x004E1200,
CPU_POWERPC_POWER9_DD22 = 0x004E1202,
CPU_POWERPC_POWER10_BASE = 0x00800000,
With that,
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
regards,
Harsh
>
> diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
> index 40b7c52f7f..50523ead25 100644
> --- a/hw/ppc/spapr_cpu_core.c
> +++ b/hw/ppc/spapr_cpu_core.c
> @@ -394,10 +394,8 @@ static const TypeInfo spapr_cpu_core_type_infos[] = {
> DEFINE_SPAPR_CPU_CORE_TYPE("power8_v2.0"),
> DEFINE_SPAPR_CPU_CORE_TYPE("power8e_v2.1"),
> DEFINE_SPAPR_CPU_CORE_TYPE("power8nvl_v1.0"),
> - DEFINE_SPAPR_CPU_CORE_TYPE("power9_v1.0"),
> DEFINE_SPAPR_CPU_CORE_TYPE("power9_v2.0"),
> DEFINE_SPAPR_CPU_CORE_TYPE("power9_v2.2"),
> - DEFINE_SPAPR_CPU_CORE_TYPE("power10_v1.0"),
> DEFINE_SPAPR_CPU_CORE_TYPE("power10_v2.0"),
> #ifdef CONFIG_KVM
> DEFINE_SPAPR_CPU_CORE_TYPE("host"),
> diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c
> index 36e465b390..f2301b43f7 100644
> --- a/target/ppc/cpu-models.c
> +++ b/target/ppc/cpu-models.c
> @@ -728,14 +728,10 @@
> "POWER8 v2.0")
> POWERPC_DEF("power8nvl_v1.0", CPU_POWERPC_POWER8NVL_v10, POWER8,
> "POWER8NVL v1.0")
> - POWERPC_DEF("power9_v1.0", CPU_POWERPC_POWER9_DD1, POWER9,
> - "POWER9 v1.0")
> POWERPC_DEF("power9_v2.0", CPU_POWERPC_POWER9_DD20, POWER9,
> "POWER9 v2.0")
> POWERPC_DEF("power9_v2.2", CPU_POWERPC_POWER9_DD22, POWER9,
> "POWER9 v2.2")
> - POWERPC_DEF("power10_v1.0", CPU_POWERPC_POWER10_DD1, POWER10,
> - "POWER10 v1.0")
> POWERPC_DEF("power10_v2.0", CPU_POWERPC_POWER10_DD20, POWER10,
> "POWER10 v2.0")
> #endif /* defined (TARGET_PPC64) */
> diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
> index 1d3d1db7c3..572cbdf25f 100644
> --- a/target/ppc/cpu_init.c
> +++ b/target/ppc/cpu_init.c
> @@ -6350,10 +6350,7 @@ static bool ppc_pvr_match_power9(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
> return false;
> }
>
> - if ((pvr & 0x0f00) == 0x100) {
> - /* DD1.x always matches power9_v1.0 */
> - return true;
> - } else if ((pvr & 0x0f00) == 0x200) {
> + if ((pvr & 0x0f00) == 0x200) {
> if ((pvr & 0xf) < 2) {
> /* DD2.0, DD2.1 match power9_v2.0 */
> if ((pcc->pvr & 0xf) == 0) {
> @@ -6536,7 +6533,7 @@ static bool ppc_pvr_match_power10(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
> }
>
> if ((pvr & 0x0f00) == (pcc->pvr & 0x0f00)) {
> - /* Major DD version matches to power10_v1.0 and power10_v2.0 */
> + /* Major DD version matches power10_v2.0 */
> return true;
> }
>
> diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
> index bcf30a5400..525fbe3892 100644
> --- a/target/ppc/kvm.c
> +++ b/target/ppc/kvm.c
> @@ -2369,17 +2369,6 @@ static void kvmppc_host_cpu_class_init(ObjectClass *oc, void *data)
>
> #if defined(TARGET_PPC64)
> pcc->radix_page_info = kvmppc_get_radix_page_info();
> -
> - if ((pcc->pvr & 0xffffff00) == CPU_POWERPC_POWER9_DD1) {
> - /*
> - * POWER9 DD1 has some bugs which make it not really ISA 3.00
> - * compliant. More importantly, advertising ISA 3.00
> - * architected mode may prevent guests from activating
> - * necessary DD1 workarounds.
> - */
> - pcc->pcr_supported &= ~(PCR_COMPAT_3_00 | PCR_COMPAT_2_07
> - | PCR_COMPAT_2_06 | PCR_COMPAT_2_05);
> - }
> #endif /* defined(TARGET_PPC64) */
> }
>
On 3/12/24 10:20, Harsh Prateek Bora wrote:
>
>
> On 3/12/24 00:21, Nicholas Piggin wrote:
>> The POWER9 DD1 and POWER10 DD1 chips are not public and are no longer of
>> any use in QEMU. Remove them.
>>
>> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
>> ---
>> hw/ppc/spapr_cpu_core.c | 2 --
>> target/ppc/cpu-models.c | 4 ----
>> target/ppc/cpu_init.c | 7 ++-----
>> target/ppc/kvm.c | 11 -----------
>> 4 files changed, 2 insertions(+), 22 deletions(-)
>
> Do we want to squash in removal of the macro as well?
>
<snip>
Actually both, correcting diff:
diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
index 0229ef3a9a..7d89b41214 100644
--- a/target/ppc/cpu-models.h
+++ b/target/ppc/cpu-models.h
@@ -348,11 +348,9 @@ enum {
CPU_POWERPC_POWER8NVL_BASE = 0x004C0000,
CPU_POWERPC_POWER8NVL_v10 = 0x004C0100,
CPU_POWERPC_POWER9_BASE = 0x004E0000,
- CPU_POWERPC_POWER9_DD1 = 0x004E1100,
CPU_POWERPC_POWER9_DD20 = 0x004E1200,
CPU_POWERPC_POWER9_DD22 = 0x004E1202,
CPU_POWERPC_POWER10_BASE = 0x00800000,
- CPU_POWERPC_POWER10_DD1 = 0x00801100,
CPU_POWERPC_POWER10_DD20 = 0x00801200,
CPU_POWERPC_970_v22 = 0x00390202,
CPU_POWERPC_970FX_v10 = 0x00391100,
>
> With that,
>
> Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
>
> regards,
> Harsh
>
>>
>> diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
>> index 40b7c52f7f..50523ead25 100644
>> --- a/hw/ppc/spapr_cpu_core.c
>> +++ b/hw/ppc/spapr_cpu_core.c
>> @@ -394,10 +394,8 @@ static const TypeInfo spapr_cpu_core_type_infos[]
>> = {
>> DEFINE_SPAPR_CPU_CORE_TYPE("power8_v2.0"),
>> DEFINE_SPAPR_CPU_CORE_TYPE("power8e_v2.1"),
>> DEFINE_SPAPR_CPU_CORE_TYPE("power8nvl_v1.0"),
>> - DEFINE_SPAPR_CPU_CORE_TYPE("power9_v1.0"),
>> DEFINE_SPAPR_CPU_CORE_TYPE("power9_v2.0"),
>> DEFINE_SPAPR_CPU_CORE_TYPE("power9_v2.2"),
>> - DEFINE_SPAPR_CPU_CORE_TYPE("power10_v1.0"),
>> DEFINE_SPAPR_CPU_CORE_TYPE("power10_v2.0"),
>> #ifdef CONFIG_KVM
>> DEFINE_SPAPR_CPU_CORE_TYPE("host"),
>> diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c
>> index 36e465b390..f2301b43f7 100644
>> --- a/target/ppc/cpu-models.c
>> +++ b/target/ppc/cpu-models.c
>> @@ -728,14 +728,10 @@
>> "POWER8 v2.0")
>> POWERPC_DEF("power8nvl_v1.0", CPU_POWERPC_POWER8NVL_v10,
>> POWER8,
>> "POWER8NVL v1.0")
>> - POWERPC_DEF("power9_v1.0", CPU_POWERPC_POWER9_DD1,
>> POWER9,
>> - "POWER9 v1.0")
>> POWERPC_DEF("power9_v2.0", CPU_POWERPC_POWER9_DD20,
>> POWER9,
>> "POWER9 v2.0")
>> POWERPC_DEF("power9_v2.2", CPU_POWERPC_POWER9_DD22,
>> POWER9,
>> "POWER9 v2.2")
>> - POWERPC_DEF("power10_v1.0", CPU_POWERPC_POWER10_DD1,
>> POWER10,
>> - "POWER10 v1.0")
>> POWERPC_DEF("power10_v2.0", CPU_POWERPC_POWER10_DD20,
>> POWER10,
>> "POWER10 v2.0")
>> #endif /* defined (TARGET_PPC64) */
>> diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
>> index 1d3d1db7c3..572cbdf25f 100644
>> --- a/target/ppc/cpu_init.c
>> +++ b/target/ppc/cpu_init.c
>> @@ -6350,10 +6350,7 @@ static bool
>> ppc_pvr_match_power9(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
>> return false;
>> }
>> - if ((pvr & 0x0f00) == 0x100) {
>> - /* DD1.x always matches power9_v1.0 */
>> - return true;
>> - } else if ((pvr & 0x0f00) == 0x200) {
>> + if ((pvr & 0x0f00) == 0x200) {
>> if ((pvr & 0xf) < 2) {
>> /* DD2.0, DD2.1 match power9_v2.0 */
>> if ((pcc->pvr & 0xf) == 0) {
>> @@ -6536,7 +6533,7 @@ static bool
>> ppc_pvr_match_power10(PowerPCCPUClass *pcc, uint32_t pvr, bool best)
>> }
>> if ((pvr & 0x0f00) == (pcc->pvr & 0x0f00)) {
>> - /* Major DD version matches to power10_v1.0 and power10_v2.0 */
>> + /* Major DD version matches power10_v2.0 */
>> return true;
>> }
>> diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
>> index bcf30a5400..525fbe3892 100644
>> --- a/target/ppc/kvm.c
>> +++ b/target/ppc/kvm.c
>> @@ -2369,17 +2369,6 @@ static void
>> kvmppc_host_cpu_class_init(ObjectClass *oc, void *data)
>> #if defined(TARGET_PPC64)
>> pcc->radix_page_info = kvmppc_get_radix_page_info();
>> -
>> - if ((pcc->pvr & 0xffffff00) == CPU_POWERPC_POWER9_DD1) {
>> - /*
>> - * POWER9 DD1 has some bugs which make it not really ISA 3.00
>> - * compliant. More importantly, advertising ISA 3.00
>> - * architected mode may prevent guests from activating
>> - * necessary DD1 workarounds.
>> - */
>> - pcc->pcr_supported &= ~(PCR_COMPAT_3_00 | PCR_COMPAT_2_07
>> - | PCR_COMPAT_2_06 | PCR_COMPAT_2_05);
>> - }
>> #endif /* defined(TARGET_PPC64) */
>> }
>
On Tue Mar 12, 2024 at 2:55 PM AEST, Harsh Prateek Bora wrote:
>
>
> On 3/12/24 10:20, Harsh Prateek Bora wrote:
> >
> >
> > On 3/12/24 00:21, Nicholas Piggin wrote:
> >> The POWER9 DD1 and POWER10 DD1 chips are not public and are no longer of
> >> any use in QEMU. Remove them.
> >>
> >> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> >> ---
> >> hw/ppc/spapr_cpu_core.c | 2 --
> >> target/ppc/cpu-models.c | 4 ----
> >> target/ppc/cpu_init.c | 7 ++-----
> >> target/ppc/kvm.c | 11 -----------
> >> 4 files changed, 2 insertions(+), 22 deletions(-)
> >
> > Do we want to squash in removal of the macro as well?
> >
>
> <snip>
> Actually both, correcting diff:
>
> diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
> index 0229ef3a9a..7d89b41214 100644
> --- a/target/ppc/cpu-models.h
> +++ b/target/ppc/cpu-models.h
> @@ -348,11 +348,9 @@ enum {
> CPU_POWERPC_POWER8NVL_BASE = 0x004C0000,
> CPU_POWERPC_POWER8NVL_v10 = 0x004C0100,
> CPU_POWERPC_POWER9_BASE = 0x004E0000,
> - CPU_POWERPC_POWER9_DD1 = 0x004E1100,
> CPU_POWERPC_POWER9_DD20 = 0x004E1200,
> CPU_POWERPC_POWER9_DD22 = 0x004E1202,
> CPU_POWERPC_POWER10_BASE = 0x00800000,
> - CPU_POWERPC_POWER10_DD1 = 0x00801100,
> CPU_POWERPC_POWER10_DD20 = 0x00801200,
> CPU_POWERPC_970_v22 = 0x00390202,
> CPU_POWERPC_970FX_v10 = 0x00391100,
That would make sense, but we do seem to use this list as somewhat of a
reference or at least historic graveyard too (note all the other CPUs we
no longer support). So I was going to just leave them there.
Thanks,
Nick
On 3/12/24 14:29, Nicholas Piggin wrote:
> On Tue Mar 12, 2024 at 2:55 PM AEST, Harsh Prateek Bora wrote:
>>
>>
>> On 3/12/24 10:20, Harsh Prateek Bora wrote:
>>>
>>>
>>> On 3/12/24 00:21, Nicholas Piggin wrote:
>>>> The POWER9 DD1 and POWER10 DD1 chips are not public and are no longer of
>>>> any use in QEMU. Remove them.
>>>>
>>>> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
>>>> ---
>>>> hw/ppc/spapr_cpu_core.c | 2 --
>>>> target/ppc/cpu-models.c | 4 ----
>>>> target/ppc/cpu_init.c | 7 ++-----
>>>> target/ppc/kvm.c | 11 -----------
>>>> 4 files changed, 2 insertions(+), 22 deletions(-)
>>>
>>> Do we want to squash in removal of the macro as well?
>>>
>>
>> <snip>
>> Actually both, correcting diff:
>>
>> diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
>> index 0229ef3a9a..7d89b41214 100644
>> --- a/target/ppc/cpu-models.h
>> +++ b/target/ppc/cpu-models.h
>> @@ -348,11 +348,9 @@ enum {
>> CPU_POWERPC_POWER8NVL_BASE = 0x004C0000,
>> CPU_POWERPC_POWER8NVL_v10 = 0x004C0100,
>> CPU_POWERPC_POWER9_BASE = 0x004E0000,
>> - CPU_POWERPC_POWER9_DD1 = 0x004E1100,
>> CPU_POWERPC_POWER9_DD20 = 0x004E1200,
>> CPU_POWERPC_POWER9_DD22 = 0x004E1202,
>> CPU_POWERPC_POWER10_BASE = 0x00800000,
>> - CPU_POWERPC_POWER10_DD1 = 0x00801100,
>> CPU_POWERPC_POWER10_DD20 = 0x00801200,
>> CPU_POWERPC_970_v22 = 0x00390202,
>> CPU_POWERPC_970FX_v10 = 0x00391100,
>
> That would make sense, but we do seem to use this list as somewhat of a
> reference or at least historic graveyard too (note all the other CPUs we
> no longer support). So I was going to just leave them there.
Oh ok, in that case, it's fine.
regards,
Harsh
>
> Thanks,
> Nick
© 2016 - 2026 Red Hat, Inc.