summaryrefslogtreecommitdiffstats
path: root/src/include/usr/sbeio
diff options
context:
space:
mode:
authorRick Ward <rward15@us.ibm.com>2018-06-29 08:47:43 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-07-05 17:13:04 -0400
commit71397fd3ade869c11ae669c3eccaf9ec8b6dee61 (patch)
treef18897efb1595e5b9bb2f866db8e3fc9ac85e34b /src/include/usr/sbeio
parentadc91be44ab6b61691801820aa2fc053db8cebbf (diff)
downloadtalos-hostboot-71397fd3ade869c11ae669c3eccaf9ec8b6dee61.tar.gz
talos-hostboot-71397fd3ade869c11ae669c3eccaf9ec8b6dee61.zip
SBE PSU timeout during MBOX init causes task crash/HB TI
- Handling a PSU DD Timeout involves invoking the SBE Retry handler, which can cause crashes (FAPI library not yet initialized) if the timeout happens very early in the IPL. - Added a check if the FAPI Library was loaded, and added a call to handle the early timeout later in the IPL. Change-Id: I199cf0302af916b3f6ffec598ccab04c031e48e6 RTC:433868 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/61730 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> Disable-CI: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/include/usr/sbeio')
-rw-r--r--src/include/usr/sbeio/sbe_psudd.H32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/include/usr/sbeio/sbe_psudd.H b/src/include/usr/sbeio/sbe_psudd.H
index ae72375ba..03b07951c 100644
--- a/src/include/usr/sbeio/sbe_psudd.H
+++ b/src/include/usr/sbeio/sbe_psudd.H
@@ -642,6 +642,28 @@ class SbePsu
uint8_t i_reqMsgs,
uint8_t i_rspMsgs);
+ /**
+ * @brief save information from an "early" error
+ *
+ * If an error occurs before the fapi2 library is loaded, this
+ * function will record the error state so it can be reported later.
+ *
+ *
+ * @param[in] i_plid Program log id for the error
+ * @param[in] i_target Proc target for PSU Request that caused an error
+ */
+ void saveEarlyError(uint32_t i_plid,TARGETING::TargetHandle_t i_target);
+
+ /**
+ * @brief Did an error occur before the fapi2 library was loaded?
+ */
+ bool earlyError() {return iv_earlyErrorOccurred;}
+
+ /**
+ * @brief If an "early" error was detected, then record and process it.
+ */
+ errlHndl_t processEarlyError();
+
protected:
/**
@@ -676,6 +698,16 @@ class SbePsu
std::map<TARGETING::Target *, void *> iv_ffdcPackageBuffer;
/**
+ * @brief Variables needed to record an "early" error
+ *
+ * If an error occurs before the fapi2 library is loaded, then
+ * use these variables to record the error for later reporting.
+ */
+ bool iv_earlyErrorOccurred;
+ uint32_t iv_earlyErrorPlid;
+ TARGETING::TargetHandle_t iv_earlyErrorTarget;
+
+ /**
* @brief FFDC package needs to be 2 pages
*/
const uint8_t ffdcPackageSize = 2;
OpenPOWER on IntegriCloud