aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2017-11-21 20:32:26 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-11-28 20:39:07 -0600
commitde82c2e0ece66b2c19d5d9cdc965c90c95fb9af3 (patch)
tree36884e7dfb6520febf52c3f3b822a52b5d105f59 /include
parentddc35b93fcadf624e9c60c4b9fefd83330748613 (diff)
downloadskiboot-de82c2e0ece66b2c19d5d9cdc965c90c95fb9af3.zip
skiboot-de82c2e0ece66b2c19d5d9cdc965c90c95fb9af3.tar.gz
skiboot-de82c2e0ece66b2c19d5d9cdc965c90c95fb9af3.tar.bz2
xive: Implement "single escalation" feature
This adds a new VP flag to control the new DD2.0 "single escalation" feature. This feature allows us to have a single escalation interrupt per VP instead of one per queue. It works by hijacking queue 7 (which is this no longer usable when that is enabled) and exploiting two new hardware bits that will: - Make the normal queues (0..6) escalate unconditionally thus ignoring the ESe bits. - Route the above escalations to queue 7 - Have queue 7 silently escalate without notification Thus the escalation of queue 7 becomes the one escalation interrupt for all the other queues. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'include')
-rw-r--r--include/xive.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/include/xive.h b/include/xive.h
index 63ee77b..ae7bb0b 100644
--- a/include/xive.h
+++ b/include/xive.h
@@ -397,13 +397,14 @@ struct xive_ive {
/* EQ */
struct xive_eq {
uint32_t w0;
-#define EQ_W0_VALID PPC_BIT32(0)
-#define EQ_W0_ENQUEUE PPC_BIT32(1)
-#define EQ_W0_UCOND_NOTIFY PPC_BIT32(2)
-#define EQ_W0_BACKLOG PPC_BIT32(3)
-#define EQ_W0_PRECL_ESC_CTL PPC_BIT32(4)
-#define EQ_W0_ESCALATE_CTL PPC_BIT32(5)
-#define EQ_W0_END_OF_INTR PPC_BIT32(6)
+#define EQ_W0_VALID PPC_BIT32(0) /* "v" bit */
+#define EQ_W0_ENQUEUE PPC_BIT32(1) /* "q" bit */
+#define EQ_W0_UCOND_NOTIFY PPC_BIT32(2) /* "n" bit */
+#define EQ_W0_BACKLOG PPC_BIT32(3) /* "b" bit */
+#define EQ_W0_PRECL_ESC_CTL PPC_BIT32(4) /* "p" bit */
+#define EQ_W0_ESCALATE_CTL PPC_BIT32(5) /* "e" bit */
+#define EQ_W0_UNCOND_ESCALATE PPC_BIT32(6) /* "u" bit - DD2.0 */
+#define EQ_W0_SILENT_ESCALATE PPC_BIT32(7) /* "s" bit - DD2.0 */
#define EQ_W0_QSIZE PPC_BITMASK32(12,15)
#define EQ_W0_SW0 PPC_BIT32(16)
#define EQ_W0_FIRMWARE EQ_W0_SW0 /* Owned by FW */