summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorRoland Veloz <rveloz@us.ibm.com>2018-01-12 14:42:35 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-01-18 14:08:28 -0500
commit4c76eec6354b0c68882bebfc567e95a86c811f9b (patch)
tree44e1fae457fad88cf57b40b3fa08dd6a2888fc1c /src/include/usr
parent1c2de2d2a08c9db419c3a1aa668e826bfe3f24d4 (diff)
downloadtalos-hostboot-4c76eec6354b0c68882bebfc567e95a86c811f9b.tar.gz
talos-hostboot-4c76eec6354b0c68882bebfc567e95a86c811f9b.zip
Propagate PLID from caller to any new errors; GARD target on retry fails
For any new errors, if caller has provided a PLID, that PLID is to replace the new error's PLID. Also gard out the target associated with the SBE if the SBE retry fails. Change-Id: Ic0bf1a0233c1cda8f91dd0ef093bd6c9e31574bd RTC:184891 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/51904 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> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/errl/errlentry.H8
-rw-r--r--src/include/usr/sbeio/sbe_retry_handler.H37
2 files changed, 39 insertions, 6 deletions
diff --git a/src/include/usr/errl/errlentry.H b/src/include/usr/errl/errlentry.H
index 4159d867d..418e48fe6 100644
--- a/src/include/usr/errl/errlentry.H
+++ b/src/include/usr/errl/errlentry.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2017 */
+/* Contributors Listed Below - COPYRIGHT 2011,2018 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -264,7 +264,9 @@ public:
/**
* @brief Set the platform log id for this error log.
*
- * @return The platform log ID of the error log.
+ * @param[in] i_plid PLID for error log
+ *
+ * @return void
*/
void plid( uint32_t i_plid);
@@ -843,7 +845,7 @@ private:
ErrlUH iv_User; // user header object
ErrlSrc iv_Src; // primary SRC section
std::vector<ErrlUD*> iv_SectionVector; // list of user defined sections
- std::vector<uint64_t> iv_btAddrs; // list of addresses for the backtrace
+ std::vector<uint64_t> iv_btAddrs; // list of addresses for the backtrace
ErrlUserDetailsBackTrace * iv_pBackTrace; // Pointer to back trace
// termstate will not be flattend into PEL, its only used by
diff --git a/src/include/usr/sbeio/sbe_retry_handler.H b/src/include/usr/sbeio/sbe_retry_handler.H
index baa2a1b6c..a65bfeaaa 100644
--- a/src/include/usr/sbeio/sbe_retry_handler.H
+++ b/src/include/usr/sbeio/sbe_retry_handler.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2017 */
+/* Contributors Listed Below - COPYRIGHT 2017,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -66,10 +66,28 @@ class SbeRetryHandler
START_CBS = 0, // Use p9_start_cbs to restart the SBE
HRESET = 1, // Use Hreset to restart the SBE
};
+
/**
* @brief Constructor
+ *
+ * @param[in] i_sbeMode Execute the SbeRetryHandler in either
+ * informational mode, attempt to reboot mode,
+ * or action set mode.
+ * (@see sbe_retry_handler.H)
+ */
+ explicit SbeRetryHandler(SBE_MODE_OF_OPERATION i_sbeMode);
+
+ /**
+ * @brief Constructor
+ *
+ * @param[in] i_sbeMode Execute the SbeRetryHandler in either
+ * informational mode, attempt to reboot mode,
+ * or action set mode.
+ * (@see sbe_retry_handler.H)
+ * @param[in] i_plid A PLID that is to be propagated down to any
+ * Error Log Entries that may be created
*/
- SbeRetryHandler(SBE_MODE_OF_OPERATION i_sbeMode);
+ SbeRetryHandler(SBE_MODE_OF_OPERATION i_sbeMode, uint32_t i_plid);
/**
* @brief Destructor
@@ -92,6 +110,11 @@ class SbeRetryHandler
return this->iv_errorLogPLID;
}
+ inline uint32_t getCallerPLID()
+ {
+ return this->iv_callerErrorLogPLID;
+ }
+
inline uint8_t getSwitchCount()
{
return this->iv_switchSidesCount;
@@ -225,12 +248,20 @@ class SbeRetryHandler
uint8_t iv_sbeSide;
/*
- * @brief PLID of the error logged. NULL if no error
+ * @brief PLID of the error logged. 0 if no error
* was logged.
*/
uint32_t iv_errorLogPLID;
/*
+ * @brief PLID of the caller. 0 if caller does not
+ * provide one. Not to be confused with the
+ * PLID when error log is created in the usage
+ * of this class.
+ */
+ uint32_t iv_callerErrorLogPLID;
+
+ /*
* @brief Number of times we switch SBE sides. Max is 2
*/
uint8_t iv_switchSidesCount;
OpenPOWER on IntegriCloud