diff options
author | Benjamin Weisenbeck <bweisenb@us.ibm.com> | 2013-05-23 14:53:31 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-06-11 08:55:15 -0500 |
commit | 9f501a4a60af8ff4da2e7a67d2b85057626ac062 (patch) | |
tree | 91a370abe4586b9dcc2bc704dd779e6128cbd734 /src/usr/diag/prdf | |
parent | 879e709081b0474fd6cafd35378fb601481aeac7 (diff) | |
download | talos-hostboot-9f501a4a60af8ff4da2e7a67d2b85057626ac062.tar.gz talos-hostboot-9f501a4a60af8ff4da2e7a67d2b85057626ac062.zip |
PRD: Enable erepair code on FSP
Change-Id: I4d907e99c498e0c1ba0b0a59870fa2451d2fbb54
RTC: 64173
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4689
Reviewed-by: Zane Shelley <zshelle@us.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: Christopher T. Phan <cphan@us.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4930
Diffstat (limited to 'src/usr/diag/prdf')
3 files changed, 29 insertions, 22 deletions
diff --git a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C index 89c8b6ac1..140beebbd 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C +++ b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C @@ -42,13 +42,11 @@ #include <dimmBadDqBitmapFuncs.H> // for dimm[S|G]etBadDqBitmap() -//FIXME RTC:64173 - erepair code not in FSP yet -#ifdef __HOSTBOOT_MODULE #include <io_read_erepair.H> #include <io_power_down_lanes.H> #include <io_clear_firs.H> #include <erepairAccessorHwpFuncs.H> -#endif +#include <io_fir_isolation.H> using namespace TARGETING; @@ -116,13 +114,10 @@ int32_t readErepair(TargetHandle_t i_rxBusTgt, int32_t o_rc = SUCCESS; errlHndl_t err = NULL; - //FIXME RTC:64173 - erepair code not in FSP yet -#ifdef __HOSTBOOT_MODULE PRD_FAPI_TO_ERRL(err, io_read_erepair, getFapiTarget(i_rxBusTgt), o_rxFailLanes); -#endif if(NULL != err) { @@ -140,12 +135,9 @@ int32_t clearIOFirs(TargetHandle_t i_rxBusTgt) int32_t o_rc = SUCCESS; errlHndl_t err = NULL; - //FIXME RTC:64173 - erepair code not in FSP yet -#ifdef __HOSTBOOT_MODULE PRD_FAPI_TO_ERRL(err, io_clear_firs, getFapiTarget(i_rxBusTgt)); -#endif if(NULL != err) { @@ -165,14 +157,11 @@ int32_t powerDownLanes(TargetHandle_t i_rxBusTgt, int32_t o_rc = SUCCESS; errlHndl_t err = NULL; - //FIXME RTC:64173 - erepair code not in FSP yet -#ifdef __HOSTBOOT_MODULE PRD_FAPI_TO_ERRL(err, io_power_down_lanes, getFapiTarget(i_rxBusTgt), i_txFailLanes, i_rxFailLanes); -#endif if(NULL != err) { @@ -192,14 +181,11 @@ int32_t getVpdFailedLanes(TargetHandle_t i_rxBusTgt, int32_t o_rc = SUCCESS; errlHndl_t err = NULL; - //FIXME RTC:64173 - erepair code not in FSP yet -#ifdef __HOSTBOOT_MODULE PRD_FAPI_TO_ERRL(err, erepairGetFailedLanes, getFapiTarget(i_rxBusTgt), o_rxFailLanes, o_txFailLanes); -#endif if(NULL != err) { @@ -220,15 +206,12 @@ int32_t setVpdFailedLanes(TargetHandle_t i_rxBusTgt, int32_t o_rc = SUCCESS; errlHndl_t err = NULL; - //FIXME interface being updated in RTC59554 - /* PRD_FAPI_TO_ERRL(err, erepairSetFailedLanes, - getFapiTarget(i_rxBusTgt), getFapiTarget(i_txBusTgt), - o_rxFailLanes, + getFapiTarget(i_rxBusTgt), + i_rxFailLanes, o_thrExceeded); - */ if(NULL != err) { PRDF_ERR( "[PlatServices::setVpdFailedLanes] rxHUID: 0x%08x " @@ -240,6 +223,23 @@ int32_t setVpdFailedLanes(TargetHandle_t i_rxBusTgt, return o_rc; } +int32_t erepairFirIsolation(TargetHandle_t i_rxBusTgt) +{ + errlHndl_t err = NULL; + + PRD_FAPI_TO_ERRL(err, io_fir_isolation, getFapiTarget(i_rxBusTgt)); + + if(NULL != err) + { + PRDF_TRAC( "[PlatServices::setVpdFailedLanes] rxHUID: 0x%08x " + "committing io_fir_isolation log", + getHuid(i_rxBusTgt)); + PRDF_COMMIT_ERRL( err, ERRL_ACTION_REPORT ); + } + + // Return SUCCESS since we expect this procedure to generate an error + return SUCCESS; +} //############################################################################## //## Memory specific functions //############################################################################## diff --git a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H index 2583b456a..50e27a8d0 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H +++ b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H @@ -177,6 +177,14 @@ int32_t setVpdFailedLanes(TARGETING::TargetHandle_t i_rxBusTgt, std::vector<uint8_t> &i_rxFailLanes, bool & o_thrExceeded); +/** + * @brief Calls io_fir_isolation HWP and commits FAPI errorlog containing + * additional FFDC + * @param i_rxBusTgt Target of the receiving end of the bus + * @return SUCCESS + */ +int32_t erepairFirIsolation(TARGETING::TargetHandle_t i_rxBusTgt); + //############################################################################## //## Memory specific functions //############################################################################## diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfLaneRepair.C b/src/usr/diag/prdf/common/plat/pegasus/prdfLaneRepair.C index a0cd276b6..a76413ec6 100644 --- a/src/usr/diag/prdf/common/plat/pegasus/prdfLaneRepair.C +++ b/src/usr/diag/prdf/common/plat/pegasus/prdfLaneRepair.C @@ -239,11 +239,10 @@ int32_t handleLaneRepairEvent (ExtensibleChip * i_chip, } while (0); - //FIXME RTC:64173 - Add call to io_fir_isolation when available - // Clear FIRs if (rxBusTgt) { + l_rc |= erepairFirIsolation(rxBusTgt); l_rc |= clearIOFirs(rxBusTgt); } |