summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorBill Hoffa <wghoffa@us.ibm.com>2018-01-09 08:16:44 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-01-25 17:44:20 -0500
commitcb444552aebafa54ceb0417c12d61cd48fbc65e0 (patch)
tree0668b3062d19ceea3cf3ca626a5a5fcbda1acd1d /src/include/usr
parentde1c2d1d9e39215b8c7012a0dbfde029de6bec2d (diff)
downloadtalos-hostboot-cb444552aebafa54ceb0417c12d61cd48fbc65e0.tar.gz
talos-hostboot-cb444552aebafa54ceb0417c12d61cd48fbc65e0.zip
Multi-Drawer (IPC) Interrupt/Messaging Support
- Use doorbells instead of IPIs (no IPI support using LSI interupts in the XIVE intr architecture) - New message type from kernel to userspace so the kernel can notify the HB userspace Interrupt Resource Provider (INTRP) that an IPC message was sent to the particular HB instance (in P8 this happened automatically as that was part of the IPI architecture). - Re-enable testcase that validates that an IPC message can be successfully sent. Change-Id: Ic846f8dca45217205ed61d8381a573e995cb16f2 RTC: 150861 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52004 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/intr/interrupt.H35
-rw-r--r--src/include/usr/intr/intr_reasoncodes.H3
-rw-r--r--src/include/usr/mbox/mbox_reasoncodes.H3
-rw-r--r--src/include/usr/mbox/mboxif.H2
4 files changed, 9 insertions, 34 deletions
diff --git a/src/include/usr/intr/interrupt.H b/src/include/usr/intr/interrupt.H
index 3f4d0e8dd..b03f08f82 100644
--- a/src/include/usr/intr/interrupt.H
+++ b/src/include/usr/intr/interrupt.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2017 */
+/* Contributors Listed Below - COPYRIGHT 2011,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -35,30 +35,9 @@ namespace TARGETING
namespace INTR
{
- /**
- * External Interrupt Types (XISR)
- * This value is passed in message data[0] on interrupt or shutdown.
- * @note The XISR is 24 bits:
- * XISR[ 0: 4] NOT DEFINED
- * XISR[ 5: 7] Node id
- * XISR[ 8:10] chipId within Node
- * XISR[11:12] Unit selection [GX='00', PHB0='01', PHB1='10', PHB2='11']
- * XISR[13:19] BUID
- * XISR[20:23] level
- *
- * extr_intr_t values are XISR right shifted, lsb = bit 23
- */
- enum XISRvalue_t
- {
- NO_INTERRUPT = 0, //!< no interrupt present
- //TODO RTC 137564
- INTERPROC_XISR = 0xFF, //!< XISR value for IPIs
- MAX_XISR = 0x00FFFFFF, //!< Max value of the XISR
- SHUT_DOWN = 0x01000000, //!< INTR presenter sends this when shutting down
- };
-
typedef uint32_t ext_intr_t;
+ // Interrupt Source Number (ISN) Definition
enum ISNvalue_t
{
ISN_PSI = 0,
@@ -68,8 +47,8 @@ namespace INTR
ISN_LPC = 3,
ISN_LCL_ERR = 4,
ISN_HOST = 5,
- ISN_INTERPROC = 0xF0, //"special" as it isn't part of PSIHB
- //Converts to INTERPROC_XISR when registered
+ ISN_INTERPROC = 0xF0, // Interproc (IPC) Message Type
+ SHUT_DOWN = 0x01000000, //!< INTR presenter sends this when shutting down
};
//These values are HW defined values from the LSI Interrupts status register
@@ -91,14 +70,8 @@ namespace INTR
LSI_DIO = 12,
LSI_PSU = 13,
LSI_LAST_SOURCE,
-
-//TODO RTC 137564
-// ISN_INTERPROC = 0xF0, //"special" as it isn't part of PSIHB
-// //Converts to INTERPROC_XISR when registered
-// //
};
-
/**
* The XISR value is the logical OR of the Interrup Requestor Source
* Number (IRSN) and the Interrrupt Source Number (ISN).
diff --git a/src/include/usr/intr/intr_reasoncodes.H b/src/include/usr/intr/intr_reasoncodes.H
index 4101e2380..62d8ad87a 100644
--- a/src/include/usr/intr/intr_reasoncodes.H
+++ b/src/include/usr/intr/intr_reasoncodes.H
@@ -35,7 +35,6 @@ namespace INTR
MOD_INTR_ENABLE = 0x01, /**< intrrp.C : INTR::enableExternalInterrupts */
MOD_INTR_DISABLE = 0x02, /**< intrrp.C : INTR::disableExternalInterrupts */
MOD_INTR_REGISTER = 0x03, /**< intrrp.C : INTR::registerMsgQ */
- MOD_INTRRP_CHECKADDRESS = 0x04, /**< intrrp.C : IntrRp::checkAddress */
MOD_INTRRP_REGISTERINTERRUPT = 0x05, /**< intrrp.C : IntrRp::registerInterrupt */
MOD_INTR_ENABLE_PSI_INTR = 0x06, /**< intrrp.C : INTR::enablePsiIntr */
MOD_INTR_INIT_XIVR = 0x07, /**< intrrp.C : INTR::initXIVR */
@@ -50,6 +49,7 @@ namespace INTR
MOD_INTRRP_HNDLPSUINTERRUPT = 0x10, /**< intrrp.C : INTR::handlePsuInterrupt */
MOD_INTRRP_RESETINTUNIT = 0x11, /**< intrrp.C : IntrRp::resetIntUnit */
MOD_INTRRP_XIVE_SENDEOI = 0x12,
+ MOD_INTRRP_IPC = 0x13,
};
enum IntrReasonCode
@@ -67,6 +67,7 @@ namespace INTR
RC_PSU_DOORBELL_TIMEOUT = INTR_COMP_ID | 0x0A,
RC_XIVE_PBUS_QUIESCE_TIMEOUT = INTR_COMP_ID | 0x0B,
RC_MESSAGE_SEND_ERROR = INTR_COMP_ID | 0x0C,
+ RC_IPC_DATA_INVALID = INTR_COMP_ID | 0x0D,
};
};
diff --git a/src/include/usr/mbox/mbox_reasoncodes.H b/src/include/usr/mbox/mbox_reasoncodes.H
index 6b9e3d8a9..76c6c2bf7 100644
--- a/src/include/usr/mbox/mbox_reasoncodes.H
+++ b/src/include/usr/mbox/mbox_reasoncodes.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -67,6 +67,7 @@ namespace MBOX
RC_MAILBOX_DISABLED = MBOX_COMP_ID | 0x10,
RC_IPC_INVALID_NODE = MBOX_COMP_ID | 0x11,
RC_MSG_SEND_ERROR = MBOX_COMP_ID | 0x12,
+ RC_IPC_INVALID_DATA = MBOX_COMP_ID | 0x13,
};
diff --git a/src/include/usr/mbox/mboxif.H b/src/include/usr/mbox/mboxif.H
index ae753429a..140cabf37 100644
--- a/src/include/usr/mbox/mboxif.H
+++ b/src/include/usr/mbox/mboxif.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2017 */
+/* Contributors Listed Below - COPYRIGHT 2012,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
OpenPOWER on IntegriCloud