summaryrefslogtreecommitdiffstats
path: root/src/usr/mbox/test
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/usr/mbox/test
parentde1c2d1d9e39215b8c7012a0dbfde029de6bec2d (diff)
downloadblackbird-hostboot-cb444552aebafa54ceb0417c12d61cd48fbc65e0.tar.gz
blackbird-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/usr/mbox/test')
-rw-r--r--src/usr/mbox/test/mboxsptest.H113
1 files changed, 56 insertions, 57 deletions
diff --git a/src/usr/mbox/test/mboxsptest.H b/src/usr/mbox/test/mboxsptest.H
index 8a6a11f14..1b21cd4fe 100644
--- a/src/usr/mbox/test/mboxsptest.H
+++ b/src/usr/mbox/test/mboxsptest.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2017 */
+/* Contributors Listed Below - COPYRIGHT 2012,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -334,62 +334,61 @@ class MboxSPTest : public CxxTest::TestSuite
* @brief IPC message test
*
*/
-// TODO: RTC:150861 re-enable test when IPC is available
-// void testIPC(void)
-// {
-// TRACFCOMP(g_trac_mbox,"testIPC>");
-// errlHndl_t err = NULL;
-// msg_t * msg = msg_allocate();
-// msg_t * tmsg = msg_allocate();
-// msg_q_t msgQ = msg_q_create();
-//
-// err = MBOX::msgq_register(MBOX::HB_TEST_MSGQ,msgQ);
-// if(err)
-// {
-// TS_FAIL("MBOX IPC: Could not register message queue");
-// errlCommit(err,MBOX_COMP_ID);
-// }
-//
-// msg->type = 1;
-// msg->data[0] = 0x1111111111111111ull;
-// msg->data[1] = 0x4444444444444444ull;
-// msg->extra_data = (void *)0x3333333333333333ull;
-//
-// *tmsg = *msg; // save for compare
-// uint64_t node = 0;
-//
-// err = MBOX::send(MBOX::HB_TEST_MSGQ,msg,node);
-// if(err)
-// {
-// TS_FAIL("MBOX::send (IPC) returned and error log");
-// errlCommit(err,MBOX_COMP_ID);
-// msg_free(msg);
-// return;
-// }
-//
-// msg_t * rmsg = msg_wait(msgQ);
-//
-// if(rmsg->type != tmsg->type ||
-// rmsg->data[0] != tmsg->data[0] ||
-// rmsg->data[1] != tmsg->data[1] ||
-// rmsg->extra_data != tmsg->extra_data)
-// {
-// TS_FAIL("IPCTEST: Unexpected IPC message");
-//
-// TRACFCOMP(g_trac_mbox,
-// "IPCTEST IPC MSG: %d %lx %lx %p",
-// rmsg->type,
-// rmsg->data[0],
-// rmsg->data[1],
-// rmsg->extra_data);
-// }
-//
-// msgQ = MBOX::msgq_unregister(MBOX::HB_TEST_MSGQ);
-// msg_q_destroy(msgQ);
-// msg_free(rmsg);
-// msg_free(tmsg);
-// TRACFCOMP(g_trac_mbox,"<testIPC");
-// }
+ void testIPC(void)
+ {
+ TRACFCOMP(g_trac_mbox,"testIPC>");
+ errlHndl_t err = NULL;
+ msg_t * msg = msg_allocate();
+ msg_t * tmsg = msg_allocate();
+ msg_q_t msgQ = msg_q_create();
+
+ err = MBOX::msgq_register(MBOX::HB_TEST_MSGQ,msgQ);
+ if(err)
+ {
+ TS_FAIL("MBOX IPC: Could not register message queue");
+ errlCommit(err,MBOX_COMP_ID);
+ }
+
+ msg->type = 1;
+ msg->data[0] = 0x1111111111111111ull;
+ msg->data[1] = 0x4444444444444444ull;
+ msg->extra_data = (void *)0x3333333333333333ull;
+
+ *tmsg = *msg; // save for compare
+ uint64_t node = 0;
+
+ err = MBOX::send(MBOX::HB_TEST_MSGQ,msg,node);
+ if(err)
+ {
+ TS_FAIL("MBOX::send (IPC) returned and error log");
+ errlCommit(err,MBOX_COMP_ID);
+ msg_free(msg);
+ return;
+ }
+
+ msg_t * rmsg = msg_wait(msgQ);
+
+ if(rmsg->type != tmsg->type ||
+ rmsg->data[0] != tmsg->data[0] ||
+ rmsg->data[1] != tmsg->data[1] ||
+ rmsg->extra_data != tmsg->extra_data)
+ {
+ TS_FAIL("IPCTEST: Unexpected IPC message");
+
+ TRACFCOMP(g_trac_mbox,
+ "IPCTEST IPC MSG: %d %lx %lx %p",
+ rmsg->type,
+ rmsg->data[0],
+ rmsg->data[1],
+ rmsg->extra_data);
+ }
+
+ msgQ = MBOX::msgq_unregister(MBOX::HB_TEST_MSGQ);
+ msg_q_destroy(msgQ);
+ msg_free(rmsg);
+ msg_free(tmsg);
+ TRACFCOMP(g_trac_mbox,"<testIPC");
+ }
};
#endif
OpenPOWER on IntegriCloud