diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2016-09-28 13:05:16 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-09-30 17:06:32 -0400 |
commit | 26ee3a491de3ae1d1c543931fa0d1b73dccd0f49 (patch) | |
tree | 6ea9e2a659b357ccb5ba79c8e2ff5d3c964d1b95 /src/usr/diag/prdf/common | |
parent | 32cc08c59418cd007cdd8f0096aa9d85853e9ae0 (diff) | |
download | talos-hostboot-26ee3a491de3ae1d1c543931fa0d1b73dccd0f49.tar.gz talos-hostboot-26ee3a491de3ae1d1c543931fa0d1b73dccd0f49.zip |
PRD: add support for memory AUE attentions
Change-Id: Ida45e2303aeadb0abbe0a3aadc59899d9298109b
RTC: 161724
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/30427
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Squashed: I547272b9c11f5bd213a605a99629d8f7f721bdfa
Squashed: I2e97a17945c258fe455a60afee1a48d71b22d63b
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/30562
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common')
5 files changed, 43 insertions, 6 deletions
diff --git a/src/usr/diag/prdf/common/framework/resolution/iipResolution.C b/src/usr/diag/prdf/common/framework/resolution/iipResolution.C index 82da0b518..483573ffd 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipResolution.C +++ b/src/usr/diag/prdf/common/framework/resolution/iipResolution.C @@ -252,7 +252,7 @@ int32_t CalloutConnectedGard::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData ) } else { - PRDF_ERR( "[CalloutConnected::Resolve] No connected chip found:" + PRDF_ERR( "[CalloutConnectedGard::Resolve] No connected chip found:" " sourceTrgt=0x%08x, iv_peerConnType=0x%x", getHuid(sourceTrgt), iv_peerConnType ); diff --git a/src/usr/diag/prdf/common/plat/p9/p9_mca.rule b/src/usr/diag/prdf/common/plat/p9/p9_mca.rule index 042c7cf34..b23c5ae33 100644 --- a/src/usr/diag/prdf/common/plat/p9/p9_mca.rule +++ b/src/usr/diag/prdf/common/plat/p9/p9_mca.rule @@ -357,7 +357,7 @@ group gMCAECCFIR filter singlebit /** MCAECCFIR[13] * Mainline read AUE */ - (rMCAECCFIR, bit(13)) ? mainline_ce_ue_handling; + (rMCAECCFIR, bit(13)) ? all_dimm_H_th_1; /** MCAECCFIR[14] * Mainline read UE @@ -372,7 +372,7 @@ group gMCAECCFIR filter singlebit /** MCAECCFIR[16] * Mainline read IAUE */ - (rMCAECCFIR, bit(16)) ? defaultMaskedError; + (rMCAECCFIR, bit(16)) ? all_dimm_H_th_1; /** MCAECCFIR[17] * Mainline read IUE @@ -422,7 +422,7 @@ group gMCAECCFIR filter singlebit /** MCAECCFIR[33] * Maintenance AUE */ - (rMCAECCFIR, bit(33)) ? defaultMaskedError; + (rMCAECCFIR, bit(33)) ? all_dimm_H_th_1; /** MCAECCFIR[34] * Maintenance UE @@ -437,7 +437,7 @@ group gMCAECCFIR filter singlebit /** MCAECCFIR[36] * Maintenance IAUE */ - (rMCAECCFIR, bit(36)) ? defaultMaskedError; + (rMCAECCFIR, bit(36)) ? all_dimm_H_th_1; /** MCAECCFIR[37] * Maintenance IUE diff --git a/src/usr/diag/prdf/common/plat/p9/p9_mca_actions.rule b/src/usr/diag/prdf/common/plat/p9/p9_mca_actions.rule index 326b19775..85fb62742 100644 --- a/src/usr/diag/prdf/common/plat/p9/p9_mca_actions.rule +++ b/src/usr/diag/prdf/common/plat/p9/p9_mca_actions.rule @@ -22,6 +22,24 @@ # permissions and limitations under the License. # # IBM_PROLOG_END_TAG + +/** Callout all connected DIMMs HIGH on first occurence. */ +actionclass all_dimm_H_th_1 +{ + callout(connected(TYPE_DIMM,0), MRU_HIGH); + callout(connected(TYPE_DIMM,1), MRU_HIGH); + threshold1; +}; + +/** Callout all connected DIMMs HIGH and self LOW on first occurence. */ +actionclass all_dimm_H_self_L_th_1 +{ + callout(connected(TYPE_DIMM,0), MRU_HIGH); + callout(connected(TYPE_DIMM,1), MRU_HIGH); + calloutSelfLow; + threshold1; +}; + /** Verify Chip Mark...TBD */ actionclass verify_chip_mark { diff --git a/src/usr/diag/prdf/common/plat/prdfTargetServices.C b/src/usr/diag/prdf/common/plat/prdfTargetServices.C index 9f92b0057..07e0c09fa 100755 --- a/src/usr/diag/prdf/common/plat/prdfTargetServices.C +++ b/src/usr/diag/prdf/common/plat/prdfTargetServices.C @@ -431,7 +431,10 @@ struct conn_t case TYPE_MCBIST: order = 14; break; case TYPE_MCS: order = 15; break; case TYPE_MCA: order = 16; break; - case TYPE_DIMM: order = 17; break; + case TYPE_MEMBUF: order = 17; break; + case TYPE_L4: order = 18; break; + case TYPE_MBA: order = 19; break; + case TYPE_DIMM: order = 20; break; default: ; } @@ -817,6 +820,17 @@ TargetHandle_t getConnectedChild( TargetHandle_t i_target, TYPE i_connType, [&](const TargetHandle_t & t) { return trgtPos == getTargetPosition(t); } ); } + else if ( TYPE_MCA == trgtType && TYPE_DIMM == i_connType ) + { + // i_connPos is the DIMM select (0-1) + itr = std::find_if( list.begin(), list.end(), + [&](const TargetHandle_t & t) + { + uint32_t dimmPos = getTargetPosition(t); + return (trgtPos == (dimmPos / MAX_DIMM_PER_PORT)) && + (i_connPos == (dimmPos % MAX_DIMM_PER_PORT)); + } ); + } else { // default, i_connPos should match the unit position within the chip @@ -1121,6 +1135,10 @@ uint32_t getTargetPosition( TARGETING::TargetHandle_t i_target ) break; } + case CLASS_LOGICAL_CARD: // DIMMs + o_pos = i_target->getAttr<ATTR_FAPI_POS>(); + break; + default: PRDF_ERR( PRDF_FUNC "Unsupported class: %d", l_class ); } diff --git a/src/usr/diag/prdf/common/rule/prdrCompile.C b/src/usr/diag/prdf/common/rule/prdrCompile.C index f6c89e925..77ed17d70 100644 --- a/src/usr/diag/prdf/common/rule/prdrCompile.C +++ b/src/usr/diag/prdf/common/rule/prdrCompile.C @@ -449,6 +449,7 @@ uint32_t prdrActionArgMap(const std::string & i_arg) g_ActionArgMap["TYPE_MEMBUF"] = TARGETING::TYPE_MEMBUF; g_ActionArgMap["TYPE_L4"] = TARGETING::TYPE_L4; g_ActionArgMap["TYPE_MBA"] = TARGETING::TYPE_MBA; + g_ActionArgMap["TYPE_DIMM"] = TARGETING::TYPE_DIMM; g_ActionArgMap["TYPE_NA"] = TARGETING::TYPE_NA; // Initialize symbolic callouts. |