diff options
author | Roland Veloz <rveloz@us.ibm.com> | 2018-01-12 14:42:35 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-01-18 14:08:28 -0500 |
commit | 4c76eec6354b0c68882bebfc567e95a86c811f9b (patch) | |
tree | 44e1fae457fad88cf57b40b3fa08dd6a2888fc1c /src/include/usr | |
parent | 1c2de2d2a08c9db419c3a1aa668e826bfe3f24d4 (diff) | |
download | talos-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.H | 8 | ||||
-rw-r--r-- | src/include/usr/sbeio/sbe_retry_handler.H | 37 |
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; |