aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Barrat <fbarrat@linux.ibm.com>2024-09-13 11:16:47 -0500
committerNicholas Piggin <npiggin@gmail.com>2024-11-04 09:14:21 +1000
commitb9deafe7bf463fb7c7d7ee713774bfaf785eeb87 (patch)
tree9f2cb19d5bfb431492da4e605056d1ccb1d79cf5
parenta53304639a4a7c57184472a942bbb8da5e8482a6 (diff)
downloadqemu-b9deafe7bf463fb7c7d7ee713774bfaf785eeb87.zip
qemu-b9deafe7bf463fb7c7d7ee713774bfaf785eeb87.tar.gz
qemu-b9deafe7bf463fb7c7d7ee713774bfaf785eeb87.tar.bz2
pnv/xive2: Define OGEN field in the TIMA
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> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
-rw-r--r--hw/intc/xive.c4
-rw-r--r--include/hw/ppc/xive_regs.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/hw/intc/xive.c b/hw/intc/xive.c
index dc86a7a..0e81678 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
diff --git a/include/hw/ppc/xive_regs.h b/include/hw/ppc/xive_regs.h
index 9d52d46..9062c6a 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