summaryrefslogtreecommitdiffstats
path: root/src/usr/util/runtime/rt_fwnotify.C
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2018-03-22 14:56:08 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-04-09 14:31:53 -0400
commit5192636a15d9fd36653952eaad5dac0974094f00 (patch)
treec6ab6f954f0e3210a5794cfbff3ea2bcd164efc0 /src/usr/util/runtime/rt_fwnotify.C
parenta027c49b4ca5e60a17746a6eb8c6ca0d89bc6f3f (diff)
downloadtalos-hostboot-5192636a15d9fd36653952eaad5dac0974094f00.tar.gz
talos-hostboot-5192636a15d9fd36653952eaad5dac0974094f00.zip
Hook up FSP runtime support for sbe_retry_handler (hreset path)
In the sbe_retry_handler code we have two methods we can use to restart the sbe. They are restarting the cfam boot sequence (start_cbs HWP) and performing a hw reset on the PPE (hreset HWP). We use start_cbs if there are issues with initial power on of the slave proc's SBE because we will not lose any state info (fabric isn't up yet). During runtime we will want to use the hreset HWP to recover the SBE. Hreset is handy because it will not force a reboot of the entire proc chip, so the fabric can stay up while we reset the PPE in the SBE. This commit implements the code path for the hreset HWP in the sbe_retry_handler. In addition this commit enables calls to the sbe_retry_handler in rt_fwnotify's sbeAttemptRecovery function which handles PHYP requests to recover the SBE. (Also some small typos in related code fixed) Change-Id: I8f85c38a09e8d5ab80b2809e5665c77a54e35bc4 CQ: SW415675 RTC: 180242 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56276 Reviewed-by: Martin Gloff <mgloff@us.ibm.com> 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: Roland Veloz <rveloz@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/util/runtime/rt_fwnotify.C')
-rw-r--r--src/usr/util/runtime/rt_fwnotify.C20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/usr/util/runtime/rt_fwnotify.C b/src/usr/util/runtime/rt_fwnotify.C
index f8b8d6fe2..6f9a02cbc 100644
--- a/src/usr/util/runtime/rt_fwnotify.C
+++ b/src/usr/util/runtime/rt_fwnotify.C
@@ -132,19 +132,15 @@ void sbeAttemptRecovery(uint64_t i_data)
break;
}
-
- // Get the recovery results
- // TODO SW415675 Need to attempt sbe retry if requested
// Get the SBE Retry Handler, propagating the supplied PLID
-// SbeRetryHandler l_SBEobj = SbeRetryHandler(SbeRetryHandler::
-// SBE_MODE_OF_OPERATION::INFORMATIONAL_ONLY,
-// l_sbeRetryData->plid);
+ SbeRetryHandler l_SBEobj = SbeRetryHandler(SbeRetryHandler::
+ SBE_MODE_OF_OPERATION::ATTEMPT_REBOOT,
+ l_sbeRetryData->plid);
+
+ //Attempt to recover the SBE
+ l_SBEobj.main_sbe_handler(l_target);
- // Retry the recovery of the SBE
-// l_SBEobj.main_sbe_handler(l_target);
-// //bool l_recoverySuccessful = l_SBEobj.getSbeRestart();
- bool l_recoverySuccessful = false;
if (nullptr == g_hostInterfaces ||
nullptr == g_hostInterfaces->firmware_request)
{
@@ -183,8 +179,8 @@ void sbeAttemptRecovery(uint64_t i_data)
l_req_fw_msg.generic_msg.__req = GenericFspMboxMessage_t::REQUEST;
l_req_fw_msg.generic_msg.data = i_data;
- // Set msgType based on recovery success or failure
- if (l_recoverySuccessful)
+ // Set msgType based on recovery success or failure (If sbe made it back to runtime)
+ if (l_SBEobj.isSbeAtRuntime())
{
l_req_fw_msg.generic_msg.msgType =
GenericFspMboxMessage_t::MSG_SBE_RECOVERY_SUCCESS;
OpenPOWER on IntegriCloud