diff options
| author | Dan Crowell <dcrowell@us.ibm.com> | 2019-01-22 15:32:10 -0600 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-01-25 10:07:27 -0600 |
| commit | ff5e4695cc58653dda06b0e861349a9d520d87cc (patch) | |
| tree | 9375d1e401a9720fc8cf422c74b4ea754284090f /src/include/sys | |
| parent | c2f2f5037920dc8441c6b27ff7a488a90f0433b1 (diff) | |
| download | talos-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/sys')
| -rw-r--r-- | src/include/sys/misc.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/include/sys/misc.h b/src/include/sys/misc.h index 4fe0d5e44..183754f56 100644 --- a/src/include/sys/misc.h +++ b/src/include/sys/misc.h @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2018 */ +/* Contributors Listed Below - COPYRIGHT 2011,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -252,6 +252,22 @@ int cpu_master_winkle(bool i_fusedCores); */ int cpu_all_winkle(); +/** @fn cpu_wakeup_core + * @brief Have the kernel wakeup a core that was previously started. + * + * @param[in] pir - PIR value of the first thread on the core. + * @param[in] i_threads - Bitstring of threads to enable (left-justified). + * + * @note The kernel will wakeup all threads on the requested core even + * though the callee only requests with a single PIR value. + * + * @return 0 or -(errno) on failure. + * + * @retval -ENXIO - The core ID was outside of the range the kernel is + * prepared to support. + */ +int cpu_wakeup_core(uint64_t pir,uint64_t i_threads); + /** @fn cpu_crit_assert * @brief Forces a Terminate Immediate after a crit-assert is issued * @param[in] i_failAddr - value in the linkRegister of the address |

