aboutsummaryrefslogtreecommitdiff
path: root/hw/intc/xive.c
diff options
context:
space:
mode:
authorCédric Le Goater <clg@kaod.org>2022-03-02 06:51:39 +0100
committerCédric Le Goater <clg@kaod.org>2022-03-02 06:51:39 +0100
commitaadf13abaad43dd1f8b6113e516649578af63775 (patch)
treed8bde16afee129a1cdf16a6c5646adf31e7286e1 /hw/intc/xive.c
parent24c8fa968a6d8fc9a971c382c0c58f0e751dbe36 (diff)
downloadqemu-aadf13abaad43dd1f8b6113e516649578af63775.zip
qemu-aadf13abaad43dd1f8b6113e516649578af63775.tar.gz
qemu-aadf13abaad43dd1f8b6113e516649578af63775.tar.bz2
ppc/xive2: Add support for notification injection on ESB pages
This is an internal offset used to inject triggers when the PQ state bits are not controlled locally. Such as for LSIs when the PHB5 are using the Address-Based Interrupt Trigger mode and on the END. Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
Diffstat (limited to 'hw/intc/xive.c')
-rw-r--r--hw/intc/xive.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/hw/intc/xive.c b/hw/intc/xive.c
index f15f985..0d98b95 100644
--- a/hw/intc/xive.c
+++ b/hw/intc/xive.c
@@ -1061,6 +1061,15 @@ static void xive_source_esb_write(void *opaque, hwaddr addr,
notify = xive_source_esb_eoi(xsrc, srcno);
break;
+ /*
+ * This is an internal offset used to inject triggers when the PQ
+ * state bits are not controlled locally. Such as for LSIs when
+ * under ABT mode.
+ */
+ case XIVE_ESB_INJECT ... XIVE_ESB_INJECT + 0x3FF:
+ notify = true;
+ break;
+
case XIVE_ESB_SET_PQ_00 ... XIVE_ESB_SET_PQ_00 + 0x0FF:
case XIVE_ESB_SET_PQ_01 ... XIVE_ESB_SET_PQ_01 + 0x0FF:
case XIVE_ESB_SET_PQ_10 ... XIVE_ESB_SET_PQ_10 + 0x0FF: