All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Aditya Gupta" <adityag@linux.ibm.com>,
	"Mahesh J Salgaonkar" <mahesh@linux.ibm.com>,
	"Madhavan Srinivasan" <maddy@linux.ibm.com>,
	"Cédric Le Goater" <clg@kaod.org>,
	"Harsh Prateek Bora" <harshpb@linux.ibm.com>
Cc: <qemu-devel@nongnu.org>, <qemu-ppc@nongnu.org>,
	"Daniel Henrique Barboza" <danielhb413@gmail.com>
Subject: Re: [PATCH v5 4/5] target/ppc: Introduce 'PowerPCCPUClass::logical_pvr'
Date: Tue, 23 Jul 2024 15:13:58 +1000	[thread overview]
Message-ID: <D2WNU7STYWG0.326OR9H3OWQHK@gmail.com> (raw)
In-Reply-To: <20240606121657.254308-5-adityag@linux.ibm.com>

On Thu Jun 6, 2024 at 10:16 PM AEST, Aditya Gupta wrote:
> Introduce 'PnvChipClass::logical_pvr' to know corresponding logical PVR
> of a PowerPC CPU.
> This helps to have a one-to-one mapping between PVR and logical PVR for
> a CPU, and used in a later commit to handle cases where PCR of two
> generations of Power chip is same, which causes regressions with compat-mode.

>
> Cc: Cédric Le Goater <clg@kaod.org>
> Cc: Daniel Henrique Barboza <danielhb413@gmail.com>
> Cc: Harsh Prateek Bora <harshpb@linux.ibm.com>
> Cc: Mahesh J Salgaonkar <mahesh@linux.ibm.com>
> Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
> Cc: Nicholas Piggin <npiggin@gmail.com>
> Signed-off-by: Aditya Gupta <adityag@linux.ibm.com>
> ---
>  target/ppc/cpu.h      | 1 +
>  target/ppc/cpu_init.c | 5 +++++
>  2 files changed, 6 insertions(+)
>
> diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
> index 2015e603d4e0..ff43e3645228 100644
> --- a/target/ppc/cpu.h
> +++ b/target/ppc/cpu.h
> @@ -1504,6 +1504,7 @@ struct PowerPCCPUClass {
>      void (*parent_parse_features)(const char *type, char *str, Error **errp);
>  
>      uint32_t pvr;
> +    uint32_t logical_pvr;
>      /*
>       * If @best is false, match if pcc is in the family of pvr
>       * Else match only if pcc is the best match for pvr in this family.

I suppose so. pvr_match() is for hardware PVR, not logical. It's all
quite a maze.

I'll get you to re-post the series with paches 4-5 reordered ahead
of the power11 addition, so you can do the renaming and tweaking :)
Maybe call this 'spapr_logical_pvr' so it's clearly separate from the
other pvr matching.

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>

> diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
> index 9aa098935d05..50f136cca7f0 100644
> --- a/target/ppc/cpu_init.c
> +++ b/target/ppc/cpu_init.c
> @@ -6152,6 +6152,7 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data)
>  
>      dc->fw_name = "PowerPC,POWER7";
>      dc->desc = "POWER7";
> +    pcc->logical_pvr = CPU_POWERPC_LOGICAL_2_06_PLUS;
>      pcc->pvr_match = ppc_pvr_match_power7;
>      pcc->pcr_mask = PCR_VEC_DIS | PCR_VSX_DIS | PCR_COMPAT_2_05;
>      pcc->pcr_supported = PCR_COMPAT_2_06 | PCR_COMPAT_2_05;
> @@ -6315,6 +6316,7 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data)
>  
>      dc->fw_name = "PowerPC,POWER8";
>      dc->desc = "POWER8";
> +    pcc->logical_pvr = CPU_POWERPC_LOGICAL_2_07;
>      pcc->pvr_match = ppc_pvr_match_power8;
>      pcc->pcr_mask = PCR_TM_DIS | PCR_COMPAT_2_06 | PCR_COMPAT_2_05;
>      pcc->pcr_supported = PCR_COMPAT_2_07 | PCR_COMPAT_2_06 | PCR_COMPAT_2_05;
> @@ -6508,6 +6510,7 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data)
>  
>      dc->fw_name = "PowerPC,POWER9";
>      dc->desc = "POWER9";
> +    pcc->logical_pvr = CPU_POWERPC_LOGICAL_3_00;
>      pcc->pvr_match = ppc_pvr_match_power9;
>      pcc->pcr_mask = POWERPC_POWER9_PCC_PCR_MASK;
>      pcc->pcr_supported = POWERPC_POWER9_PCC_PCR_SUPPORTED;
> @@ -6642,6 +6645,7 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data)
>  
>      dc->fw_name = "PowerPC,POWER10";
>      dc->desc = "POWER10";
> +    pcc->logical_pvr = CPU_POWERPC_LOGICAL_3_10;
>      pcc->pvr_match = ppc_pvr_match_power10;
>      pcc->pcr_mask = POWERPC_POWER10_PCC_PCR_MASK;
>      pcc->pcr_supported = POWERPC_POWER10_PCC_PCR_SUPPORTED;
> @@ -6696,6 +6700,7 @@ POWERPC_FAMILY(POWER11)(ObjectClass *oc, void *data)
>  
>      dc->fw_name = "PowerPC,POWER11";
>      dc->desc = "POWER11";
> +    pcc->logical_pvr = CPU_POWERPC_LOGICAL_3_10_PLUS;
>      pcc->pvr_match = ppc_pvr_match_power11;
>      pcc->pcr_mask = POWERPC_POWER10_PCC_PCR_MASK;
>      pcc->pcr_supported = POWERPC_POWER10_PCC_PCR_SUPPORTED;



  reply	other threads:[~2024-07-23  5:14 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-06 12:16 [PATCH v5 0/5] Power11 support for QEMU [PSeries] Aditya Gupta
2024-06-06 12:16 ` [PATCH v5 1/5] target/ppc: reduce code duplication across Power9/10 init code Aditya Gupta
2024-07-23  4:21   ` Nicholas Piggin
2024-07-23  5:02     ` Aditya Gupta
2024-07-23  5:22   ` Nicholas Piggin
2024-07-23 15:13     ` Aditya Gupta
2024-07-24  4:16       ` Harsh Prateek Bora
2024-07-24  6:31     ` Aditya Gupta
2024-07-24  6:50     ` Aditya Gupta
2024-07-24 12:04       ` BALATON Zoltan
2024-06-06 12:16 ` [PATCH v5 2/5] target/ppc: Add Power11 DD2.0 processor Aditya Gupta
2024-07-23  4:30   ` Nicholas Piggin
2024-07-23  5:01     ` Aditya Gupta
2024-07-23  5:27   ` Nicholas Piggin
2024-06-06 12:16 ` [PATCH v5 3/5] ppc/pseries: Add Power11 cpu type Aditya Gupta
2024-07-23  4:34   ` Nicholas Piggin
2024-06-06 12:16 ` [PATCH v5 4/5] target/ppc: Introduce 'PowerPCCPUClass::logical_pvr' Aditya Gupta
2024-07-23  5:13   ` Nicholas Piggin [this message]
2024-07-23  5:42     ` Aditya Gupta
2024-06-06 12:16 ` [PATCH v5 5/5] target/ppc: Fix regression due to Power10 and Power11 having same PCR Aditya Gupta
2024-07-23  4:58   ` Nicholas Piggin
2024-07-23  5:08     ` Aditya Gupta
2024-06-06 12:22 ` [PATCH v5 0/5] Power11 support for QEMU [PSeries] Aditya Gupta
2024-07-22  9:12 ` Aditya Gupta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=D2WNU7STYWG0.326OR9H3OWQHK@gmail.com \
    --to=npiggin@gmail.com \
    --cc=adityag@linux.ibm.com \
    --cc=clg@kaod.org \
    --cc=danielhb413@gmail.com \
    --cc=harshpb@linux.ibm.com \
    --cc=maddy@linux.ibm.com \
    --cc=mahesh@linux.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.