summaryrefslogtreecommitdiffstats
path: root/src/include/kernel/intmsghandler.H
diff options
context:
space:
mode:
authorBill Hoffa <wghoffa@us.ibm.com>2016-01-13 14:06:31 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-05-06 11:03:22 -0400
commitb42194c6063f64d59fe1c360fa4ae4edd85ad2f3 (patch)
treeb055e27081164600409203f31c3eac93f32397cb /src/include/kernel/intmsghandler.H
parentdaf95f9b2b66313079186c2d8669ffa75155056f (diff)
downloadtalos-hostboot-b42194c6063f64d59fe1c360fa4ae4edd85ad2f3.tar.gz
talos-hostboot-b42194c6063f64d59fe1c360fa4ae4edd85ad2f3.zip
Doorbell Interrupt Base Support for Core/Thread Wakeup
This change includes: - Implementation of a generic KernelWorkItem Class - Kernel functionality for doorbell send to specific PIRs - Kernel changes to send core/thread Wakeup doorbells using doorbell_send() + placing KernelWorkItems on a cpu stack obj to be executed during doorbell wakeup - Kernel Interrupt Message handler changes to send wakeup msgs - Interrupt Resource Provider (INTRRP) Changes to handle wakeup msgs and monitor for timeouts - Changes to the IPL flow to invoke proper Core/Thread Wakeup - A basic outline (commented out) for how IPC messages can be implemented in the future Change-Id: I547fb8719bac657def561565ae11ab18cde72096 CMVC-Prereq: 992722 RTC:137564 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22815 Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Reviewed-by: Andrew J. Geissler <andrewg@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/kernel/intmsghandler.H')
-rw-r--r--src/include/kernel/intmsghandler.H13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/include/kernel/intmsghandler.H b/src/include/kernel/intmsghandler.H
index 8fd4e34b6..8f7c08559 100644
--- a/src/include/kernel/intmsghandler.H
+++ b/src/include/kernel/intmsghandler.H
@@ -145,14 +145,15 @@ class InterruptMsgHdlr : public MessageHandler
static void addCpuCore(uint64_t i_pir);
/**
- * Issue an IPI to the core.
+ * Send message to interrupt resource provider (intrrp) in userspace to
+ * indicate a wakeup occurred for core/thread indicated by given pir.
+ * The intrrp monitors the expected cores/threads wakeup and will issue
+ * a timeout/error in the event that not all expected cores/threads
+ * send this message
*
- * @param[in] i_pir - The PIR of the CPU to send IPI at.
- * @param[in] i_favor - How favored the interrupt is; 0 = most favored
- * 254 = least favored, 255 = no interrupt
- * Default 0x1 - IPI from kernel side (wakeup)
+ * @param[in] i_pir - The PIR of the CPU to send doorbell to.
*/
- static void sendIPI(uint64_t i_pir, uint8_t i_favor = 0x1);
+ static void sendThreadWakeupMsg(uint64_t i_pir);
/**
* Issue the sbe/mailbox workaround (issue a mbox EOI to mailbox)
OpenPOWER on IntegriCloud