summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorElizabeth Liner <eliner@us.ibm.com>2017-12-14 12:26:42 -0600
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2017-12-22 15:31:10 -0500
commit6b43bcadea886d324aa94971130f3567fbeb60b1 (patch)
tree69ba58faef995900636e61b232c1d06e7760b402 /src/include
parent2e5deae5db69e175c2e4eb06f2afa4a48d00c66a (diff)
downloadtalos-hostboot-6b43bcadea886d324aa94971130f3567fbeb60b1.tar.gz
talos-hostboot-6b43bcadea886d324aa94971130f3567fbeb60b1.zip
Adding advanced restart logic after detecting vital attentions
This code sets up and calls the SbeRetryHandler class to attempt an SBE restart. Additionally, we need more than one way to restart the SBE: p9_start_cbs and hreset. This commit sets up the structure to use one of the two methods while waiting on hreset to be available. Change-Id: I17dfb4047268efa84e388391698b668cec2e13e4 RTC:180243 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/50953 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/usr/sbeio/sbe_retry_handler.H22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/include/usr/sbeio/sbe_retry_handler.H b/src/include/usr/sbeio/sbe_retry_handler.H
index 90b74f1bb..baa2a1b6c 100644
--- a/src/include/usr/sbeio/sbe_retry_handler.H
+++ b/src/include/usr/sbeio/sbe_retry_handler.H
@@ -61,6 +61,11 @@ class SbeRetryHandler
// the action the SBE thinks we should attempt.
};
+ enum SBE_RESTART_METHOD
+ {
+ START_CBS = 0, // Use p9_start_cbs to restart the SBE
+ HRESET = 1, // Use Hreset to restart the SBE
+ };
/**
* @brief Constructor
*/
@@ -106,6 +111,14 @@ class SbeRetryHandler
{
return this->iv_currentSBEState;
}
+ inline SBE_RESTART_METHOD getSbeRestartMethod()
+ {
+ return this->iv_sbeRestartMethod;
+ }
+ inline void setSbeRestartMethod(SBE_RESTART_METHOD i_method)
+ {
+ this->iv_sbeRestartMethod = i_method;
+ }
inline SBE_MODE_OF_OPERATION getSBEMode()
{
@@ -250,6 +263,15 @@ class SbeRetryHandler
* SBE_MODE_OF_OPERATION enum
*/
SBE_MODE_OF_OPERATION iv_sbeMode;
+
+ /*
+ * @brief If true, use the HWP p9_start_cbs to restart the SBE. This
+ * HWP kills the proc we're on, so there are some situations
+ * where we want to use hreset instead. Each choice is noted
+ * in the SBE_RESTART_METHOD enum
+ */
+ SBE_RESTART_METHOD iv_sbeRestartMethod;
+
}; // End of class SbeRetryHandler
} // End of namespace SBEIO
OpenPOWER on IntegriCloud