[PATCH] target/ppc: Use SMT4 small core chip type in POWER9/10 PVRs

Nicholas Piggin posted 1 patch 11 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230515160131.394562-1-npiggin@gmail.com
Maintainers: Daniel Henrique Barboza <danielhb413@gmail.com>, "Cédric Le Goater" <clg@kaod.org>, David Gibson <david@gibson.dropbear.id.au>, Greg Kurz <groug@kaod.org>
target/ppc/cpu-models.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
[PATCH] target/ppc: Use SMT4 small core chip type in POWER9/10 PVRs
Posted by Nicholas Piggin 11 months, 2 weeks ago
QEMU's PVR value for POWER9 DD2.0 has chip type 1, which is the SMT4
"small core" type that OpenPOWER processors use. QEMU's PVR for all
other POWER9/10 have chip type 0, which "enterprise" systems use.

The difference does not really matter to QEMU (because it does not care
about SMT mode in the target), but for consistency all PVRs should use
the same chip type. We'll go with the SMT4 OpenPOWER type.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
This is a replacement for

https://lists.gnu.org/archive/html/qemu-ppc/2022-03/msg00227.html

But the chip type is changed to 1 instead of 0, because that's the
more familiar SM4 / small core CPU.

Thanks,
Nick

 target/ppc/cpu-models.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
index 1326493a9a..a77e036b3a 100644
--- a/target/ppc/cpu-models.h
+++ b/target/ppc/cpu-models.h
@@ -348,11 +348,11 @@ enum {
     CPU_POWERPC_POWER8NVL_BASE     = 0x004C0000,
     CPU_POWERPC_POWER8NVL_v10      = 0x004C0100,
     CPU_POWERPC_POWER9_BASE        = 0x004E0000,
-    CPU_POWERPC_POWER9_DD1         = 0x004E0100,
+    CPU_POWERPC_POWER9_DD1         = 0x004E1100,
     CPU_POWERPC_POWER9_DD20        = 0x004E1200,
     CPU_POWERPC_POWER10_BASE       = 0x00800000,
-    CPU_POWERPC_POWER10_DD1        = 0x00800100,
-    CPU_POWERPC_POWER10_DD20       = 0x00800200,
+    CPU_POWERPC_POWER10_DD1        = 0x00801100,
+    CPU_POWERPC_POWER10_DD20       = 0x00801200,
     CPU_POWERPC_970_v22            = 0x00390202,
     CPU_POWERPC_970FX_v10          = 0x00391100,
     CPU_POWERPC_970FX_v20          = 0x003C0200,
-- 
2.40.1
Re: [PATCH] target/ppc: Use SMT4 small core chip type in POWER9/10 PVRs
Posted by Daniel Henrique Barboza 11 months, 1 week ago

On 5/15/23 13:01, Nicholas Piggin wrote:
> QEMU's PVR value for POWER9 DD2.0 has chip type 1, which is the SMT4
> "small core" type that OpenPOWER processors use. QEMU's PVR for all
> other POWER9/10 have chip type 0, which "enterprise" systems use.
> 
> The difference does not really matter to QEMU (because it does not care
> about SMT mode in the target), but for consistency all PVRs should use
> the same chip type. We'll go with the SMT4 OpenPOWER type.
> 
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> ---

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>


And queued. Thanks,


Daniel

> This is a replacement for
> 
> https://lists.gnu.org/archive/html/qemu-ppc/2022-03/msg00227.html
> 
> But the chip type is changed to 1 instead of 0, because that's the
> more familiar SM4 / small core CPU.
> 
> Thanks,
> Nick
> 
>   target/ppc/cpu-models.h | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
> index 1326493a9a..a77e036b3a 100644
> --- a/target/ppc/cpu-models.h
> +++ b/target/ppc/cpu-models.h
> @@ -348,11 +348,11 @@ enum {
>       CPU_POWERPC_POWER8NVL_BASE     = 0x004C0000,
>       CPU_POWERPC_POWER8NVL_v10      = 0x004C0100,
>       CPU_POWERPC_POWER9_BASE        = 0x004E0000,
> -    CPU_POWERPC_POWER9_DD1         = 0x004E0100,
> +    CPU_POWERPC_POWER9_DD1         = 0x004E1100,
>       CPU_POWERPC_POWER9_DD20        = 0x004E1200,
>       CPU_POWERPC_POWER10_BASE       = 0x00800000,
> -    CPU_POWERPC_POWER10_DD1        = 0x00800100,
> -    CPU_POWERPC_POWER10_DD20       = 0x00800200,
> +    CPU_POWERPC_POWER10_DD1        = 0x00801100,
> +    CPU_POWERPC_POWER10_DD20       = 0x00801200,
>       CPU_POWERPC_970_v22            = 0x00390202,
>       CPU_POWERPC_970FX_v10          = 0x00391100,
>       CPU_POWERPC_970FX_v20          = 0x003C0200,
Re: [PATCH] target/ppc: Use SMT4 small core chip type in POWER9/10 PVRs
Posted by Cédric Le Goater 11 months, 2 weeks ago
On 5/15/23 18:01, Nicholas Piggin wrote:
> QEMU's PVR value for POWER9 DD2.0 has chip type 1, which is the SMT4
> "small core" type that OpenPOWER processors use. QEMU's PVR for all
> other POWER9/10 have chip type 0, which "enterprise" systems use.
> 
> The difference does not really matter to QEMU (because it does not care
> about SMT mode in the target), but for consistency all PVRs should use
> the same chip type. We'll go with the SMT4 OpenPOWER type.
> 
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> This is a replacement for
> 
> https://lists.gnu.org/archive/html/qemu-ppc/2022-03/msg00227.html
> 
> But the chip type is changed to 1 instead of 0, because that's the
> more familiar SM4 / small core CPU.

Will small cores POWER10 CPU be available ?

Thanks,

C.


> 
> Thanks,
> Nick
> 
>   target/ppc/cpu-models.h | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
> index 1326493a9a..a77e036b3a 100644
> --- a/target/ppc/cpu-models.h
> +++ b/target/ppc/cpu-models.h
> @@ -348,11 +348,11 @@ enum {
>       CPU_POWERPC_POWER8NVL_BASE     = 0x004C0000,
>       CPU_POWERPC_POWER8NVL_v10      = 0x004C0100,
>       CPU_POWERPC_POWER9_BASE        = 0x004E0000,
> -    CPU_POWERPC_POWER9_DD1         = 0x004E0100,
> +    CPU_POWERPC_POWER9_DD1         = 0x004E1100,
>       CPU_POWERPC_POWER9_DD20        = 0x004E1200,
>       CPU_POWERPC_POWER10_BASE       = 0x00800000,
> -    CPU_POWERPC_POWER10_DD1        = 0x00800100,
> -    CPU_POWERPC_POWER10_DD20       = 0x00800200,
> +    CPU_POWERPC_POWER10_DD1        = 0x00801100,
> +    CPU_POWERPC_POWER10_DD20       = 0x00801200,
>       CPU_POWERPC_970_v22            = 0x00390202,
>       CPU_POWERPC_970FX_v10          = 0x00391100,
>       CPU_POWERPC_970FX_v20          = 0x003C0200,
Re: [PATCH] target/ppc: Use SMT4 small core chip type in POWER9/10 PVRs
Posted by Nicholas Piggin 11 months, 2 weeks ago
On Tue May 16, 2023 at 6:44 PM AEST, Cédric Le Goater wrote:
> On 5/15/23 18:01, Nicholas Piggin wrote:
> > QEMU's PVR value for POWER9 DD2.0 has chip type 1, which is the SMT4
> > "small core" type that OpenPOWER processors use. QEMU's PVR for all
> > other POWER9/10 have chip type 0, which "enterprise" systems use.
> > 
> > The difference does not really matter to QEMU (because it does not care
> > about SMT mode in the target), but for consistency all PVRs should use
> > the same chip type. We'll go with the SMT4 OpenPOWER type.
> > 
> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> > ---
> > This is a replacement for
> > 
> > https://lists.gnu.org/archive/html/qemu-ppc/2022-03/msg00227.html
> > 
> > But the chip type is changed to 1 instead of 0, because that's the
> > more familiar SM4 / small core CPU.
>
> Will small cores POWER10 CPU be available ?

I don't know the answer to that, but even big core POWER10s need
non-standard OPAL firmware to use bare metal...

Small core is nicer for Linux to use and matches POWER9 so I did
that. In practice I don't think it will actually matter anywhere
because we don't do SMT.

Thanks,
Nick
Re: [PATCH] target/ppc: Use SMT4 small core chip type in POWER9/10 PVRs
Posted by Harsh Prateek Bora 11 months, 2 weeks ago
<correcting my email id in CC>

On 5/15/23 21:31, Nicholas Piggin wrote:
> QEMU's PVR value for POWER9 DD2.0 has chip type 1, which is the SMT4
> "small core" type that OpenPOWER processors use. QEMU's PVR for all
> other POWER9/10 have chip type 0, which "enterprise" systems use.
> 
> The difference does not really matter to QEMU (because it does not care
> about SMT mode in the target), but for consistency all PVRs should use
> the same chip type. We'll go with the SMT4 OpenPOWER type.
> 
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> This is a replacement for
> 
> https://lists.gnu.org/archive/html/qemu-ppc/2022-03/msg00227.html
> 
> But the chip type is changed to 1 instead of 0, because that's the
> more familiar SM4 / small core CPU.
> 
> Thanks,
> Nick
> 
>   target/ppc/cpu-models.h | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
> index 1326493a9a..a77e036b3a 100644
> --- a/target/ppc/cpu-models.h
> +++ b/target/ppc/cpu-models.h
> @@ -348,11 +348,11 @@ enum {
>       CPU_POWERPC_POWER8NVL_BASE     = 0x004C0000,
>       CPU_POWERPC_POWER8NVL_v10      = 0x004C0100,
>       CPU_POWERPC_POWER9_BASE        = 0x004E0000,
> -    CPU_POWERPC_POWER9_DD1         = 0x004E0100,
> +    CPU_POWERPC_POWER9_DD1         = 0x004E1100,

Could you please point me to the doc location you are referring here?
The P9 UM document that I have access to mentions this bit (0/1) for 
12/24 cores. Not sure if this change is intended here.

regards,
Harsh

>       CPU_POWERPC_POWER9_DD20        = 0x004E1200,
>       CPU_POWERPC_POWER10_BASE       = 0x00800000,
> -    CPU_POWERPC_POWER10_DD1        = 0x00800100,
> -    CPU_POWERPC_POWER10_DD20       = 0x00800200,
> +    CPU_POWERPC_POWER10_DD1        = 0x00801100,
> +    CPU_POWERPC_POWER10_DD20       = 0x00801200,
>       CPU_POWERPC_970_v22            = 0x00390202,
>       CPU_POWERPC_970FX_v10          = 0x00391100,
>       CPU_POWERPC_970FX_v20          = 0x003C0200,
Re: [PATCH] target/ppc: Use SMT4 small core chip type in POWER9/10 PVRs
Posted by Nicholas Piggin 11 months, 2 weeks ago
On Tue May 16, 2023 at 6:43 PM AEST, Harsh Prateek Bora wrote:
> <correcting my email id in CC>
>
> On 5/15/23 21:31, Nicholas Piggin wrote:
> > QEMU's PVR value for POWER9 DD2.0 has chip type 1, which is the SMT4
> > "small core" type that OpenPOWER processors use. QEMU's PVR for all
> > other POWER9/10 have chip type 0, which "enterprise" systems use.
> > 
> > The difference does not really matter to QEMU (because it does not care
> > about SMT mode in the target), but for consistency all PVRs should use
> > the same chip type. We'll go with the SMT4 OpenPOWER type.
> > 
> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> > ---
> > This is a replacement for
> > 
> > https://lists.gnu.org/archive/html/qemu-ppc/2022-03/msg00227.html
> > 
> > But the chip type is changed to 1 instead of 0, because that's the
> > more familiar SM4 / small core CPU.
> > 
> > Thanks,
> > Nick
> > 
> >   target/ppc/cpu-models.h | 6 +++---
> >   1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
> > index 1326493a9a..a77e036b3a 100644
> > --- a/target/ppc/cpu-models.h
> > +++ b/target/ppc/cpu-models.h
> > @@ -348,11 +348,11 @@ enum {
> >       CPU_POWERPC_POWER8NVL_BASE     = 0x004C0000,
> >       CPU_POWERPC_POWER8NVL_v10      = 0x004C0100,
> >       CPU_POWERPC_POWER9_BASE        = 0x004E0000,
> > -    CPU_POWERPC_POWER9_DD1         = 0x004E0100,
> > +    CPU_POWERPC_POWER9_DD1         = 0x004E1100,
>
> Could you please point me to the doc location you are referring here?
> The P9 UM document that I have access to mentions this bit (0/1) for 
> 12/24 cores. Not sure if this change is intended here.

Yes that's the one, OpenPOWER POWER9 User Manual lists it in PVR.
POWER10 is the same.

Thanks,
Nick