summaryrefslogtreecommitdiffstats
path: root/src/include/kernel
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2019-01-22 15:32:10 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-01-25 10:07:27 -0600
commitff5e4695cc58653dda06b0e861349a9d520d87cc (patch)
tree9375d1e401a9720fc8cf422c74b4ea754284090f /src/include/kernel
parentc2f2f5037920dc8441c6b27ff7a488a90f0433b1 (diff)
downloadtalos-hostboot-ff5e4695cc58653dda06b0e861349a9d520d87cc.tar.gz
talos-hostboot-ff5e4695cc58653dda06b0e861349a9d520d87cc.zip
Add retry to slave core wakeup path
We are still seeing some very intermittent errors in the slave core wakeup path. It still seems like we may have a timing issue. Until we figure out exactly what is going on, I am adding a retry mechanism that should get the core to report in correctly. The retry is done by issuing an additional doorbell message to the core that didn't report in. Change-Id: Ib87e5d58e079674d1eebb44c10d0252a35ea0519 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70761 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> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: Dean Sanner <dsanner@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/kernel')
-rw-r--r--src/include/kernel/cpumgr.H11
-rw-r--r--src/include/kernel/syscalls.H4
2 files changed, 13 insertions, 2 deletions
diff --git a/src/include/kernel/cpumgr.H b/src/include/kernel/cpumgr.H
index f8daf5ab3..9d741cd83 100644
--- a/src/include/kernel/cpumgr.H
+++ b/src/include/kernel/cpumgr.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2010,2018 */
+/* Contributors Listed Below - COPYRIGHT 2010,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -186,6 +186,15 @@ class CpuManager
static void startCore(uint64_t pir,uint64_t i_threads);
+ /** @fn wakeupCore
+ * Start the core, can only be run after startCore.
+ *
+ * @param[in] pir - PIR value of first thread in core.
+ * @param[in] i_threads - Bitstring of threads to enable (left-justified).
+ */
+ static void wakeupCore(uint64_t pir,uint64_t i_threads);
+
+
/** @fn forceMemoryPeriodic()
* Force the memory free / coalesce operations to be performed on the
* next "periodic" interval.
diff --git a/src/include/kernel/syscalls.H b/src/include/kernel/syscalls.H
index c606ad771..42e1a551b 100644
--- a/src/include/kernel/syscalls.H
+++ b/src/include/kernel/syscalls.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2010,2018 */
+/* Contributors Listed Below - COPYRIGHT 2010,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -99,6 +99,8 @@ namespace Systemcalls
MISC_CPUNAP,
/** cpu_master_winkle() */
MISC_CPUWINKLE,
+ /** cpu_wakeup_core() */
+ MISC_CPUWAKEUPCORE,
/** mm_alloc_block() */
MM_ALLOC_BLOCK,
OpenPOWER on IntegriCloud