[PATCH 02/13] pnv/xive2: Define OGEN field in the TIMA

Michael Kowal posted 13 patches 3 months, 3 weeks ago
There is a newer version of this series
[PATCH 02/13] pnv/xive2: Define OGEN field in the TIMA
Posted by Michael Kowal 3 months, 3 weeks ago
From: Frederic Barrat <fbarrat@linux.ibm.com>

The OGEN field at offset 0x1F is a new field for Gen2 TIMA. This
patch defines it.

Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
Signed-off-by: Michael Kowal <kowal@linux.vnet.ibm.com>
---
 include/hw/ppc/xive_regs.h | 1 +
 hw/intc/xive.c             | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/include/hw/ppc/xive_regs.h b/include/hw/ppc/xive_regs.h
index 9d52d464d9..9062c6abf6 100644
--- a/include/hw/ppc/xive_regs.h
+++ b/include/hw/ppc/xive_regs.h
@@ -79,6 +79,7 @@
 #define TM_INC                  0x5  /*  -   +   -   +  */
 #define TM_AGE                  0x6  /*  -   +   -   +  */
 #define TM_PIPR                 0x7  /*  -   +   -   +  */
+#define TM_OGEN                 0xF  /*  -   +   -   -  */ /* P10 only */
 
 #define TM_WORD0                0x0
 #define TM_WORD1                0x4
diff --git a/hw/intc/xive.c b/hw/intc/xive.c
index 2fb38e2102..136d82338a 100644
--- a/hw/intc/xive.c
+++ b/hw/intc/xive.c
@@ -742,6 +742,10 @@ void xive_tctx_reset(XiveTCTX *tctx)
     tctx->regs[TM_QW1_OS + TM_LSMFB] = 0xFF;
     tctx->regs[TM_QW1_OS + TM_ACK_CNT] = 0xFF;
     tctx->regs[TM_QW1_OS + TM_AGE] = 0xFF;
+    if (!(xive_presenter_get_config(tctx->xptr) &
+          XIVE_PRESENTER_GEN1_TIMA_OS)) {
+        tctx->regs[TM_QW1_OS + TM_OGEN] = 2;
+    }
 
     /*
      * Initialize PIPR to 0xFF to avoid phantom interrupts when the
-- 
2.43.0
Re: [PATCH 02/13] pnv/xive2: Define OGEN field in the TIMA
Posted by Cédric Le Goater 3 months ago
On 8/1/24 22:29, Michael Kowal wrote:
> From: Frederic Barrat <fbarrat@linux.ibm.com>
> 
> The OGEN field at offset 0x1F is a new field for Gen2 TIMA. This
> patch defines it.
> 
> Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
> Signed-off-by: Michael Kowal <kowal@linux.vnet.ibm.com>


Reviewed-by: Cédric Le Goater <clg@redhat.com>

Thanks,

C.



> ---
>   include/hw/ppc/xive_regs.h | 1 +
>   hw/intc/xive.c             | 4 ++++
>   2 files changed, 5 insertions(+)
> 
> diff --git a/include/hw/ppc/xive_regs.h b/include/hw/ppc/xive_regs.h
> index 9d52d464d9..9062c6abf6 100644
> --- a/include/hw/ppc/xive_regs.h
> +++ b/include/hw/ppc/xive_regs.h
> @@ -79,6 +79,7 @@
>   #define TM_INC                  0x5  /*  -   +   -   +  */
>   #define TM_AGE                  0x6  /*  -   +   -   +  */
>   #define TM_PIPR                 0x7  /*  -   +   -   +  */
> +#define TM_OGEN                 0xF  /*  -   +   -   -  */ /* P10 only */
>   
>   #define TM_WORD0                0x0
>   #define TM_WORD1                0x4
> diff --git a/hw/intc/xive.c b/hw/intc/xive.c
> index 2fb38e2102..136d82338a 100644
> --- a/hw/intc/xive.c
> +++ b/hw/intc/xive.c
> @@ -742,6 +742,10 @@ void xive_tctx_reset(XiveTCTX *tctx)
>       tctx->regs[TM_QW1_OS + TM_LSMFB] = 0xFF;
>       tctx->regs[TM_QW1_OS + TM_ACK_CNT] = 0xFF;
>       tctx->regs[TM_QW1_OS + TM_AGE] = 0xFF;
> +    if (!(xive_presenter_get_config(tctx->xptr) &
> +          XIVE_PRESENTER_GEN1_TIMA_OS)) {
> +        tctx->regs[TM_QW1_OS + TM_OGEN] = 2;
> +    }
>   
>       /*
>        * Initialize PIPR to 0xFF to avoid phantom interrupts when the