diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2013-04-30 21:18:57 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-05-15 11:42:40 -0500 |
commit | 1a101d381cc150e59120edc22bdf69b9ff66b425 (patch) | |
tree | 6bde7f8d63306d6a8a20e5443d878a44dcb13a64 /src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C | |
parent | ed35ee5f59ea4768297116a505c2e8ad5d6b969b (diff) | |
download | talos-hostboot-1a101d381cc150e59120edc22bdf69b9ff66b425.tar.gz talos-hostboot-1a101d381cc150e59120edc22bdf69b9ff66b425.zip |
PRD: Collect FFDC for Centaur Checkstops
Change-Id: Id65e1b961a0f47ac2456e45fa6cbe536fd659f91
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4302
Tested-by: Jenkins Server
Reviewed-by: BENJAMIN J. WEISENBECK <bweisenb@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Reviewed-by: Christopher T. Phan <cphan@us.ibm.com>
Reviewed-by: Zane Shelley <zshelle@us.ibm.com>
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4515
Diffstat (limited to 'src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C')
-rwxr-xr-x | src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C index 4083d449a..b35326c15 100755 --- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C +++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C @@ -33,6 +33,7 @@ #include <prdfGlobal.H> #include <iipSystem.h> #include <prdfLaneRepair.H> +#include <UtilHash.H> using namespace TARGETING; @@ -40,6 +41,7 @@ using namespace TARGETING; namespace PRDF { + namespace Membuf { @@ -200,6 +202,26 @@ int32_t PreAnalysis( ExtensibleChip * i_mbChip, STEP_CODE_DATA_STRUCT & i_sc, o_analyzed = false; + // Get memory capture data. + CaptureData & cd = i_sc.service_data->GetCaptureData(); + CenMembufDataBundle * mbdb = getMembufDataBundle( i_mbChip ); + ExtensibleChip * mcsChip = mbdb->getMcsChip(); + if ( NULL != mcsChip ) + { + mcsChip->CaptureErrorData( cd, Util::hashString("FirRegs") ); + mcsChip->CaptureErrorData( cd, Util::hashString("CerrRegs") ); + + for ( uint32_t i = 0; i < MAX_MBA_PER_MEMBUF; i++ ) + { + ExtensibleChip * mbaChip = mbdb->getMbaChip(i); + if ( NULL != mbaChip ) + { + mbaChip->CaptureErrorData( cd, Util::hashString("FirRegs") ); + mbaChip->CaptureErrorData( cd, Util::hashString("CerrRegs") ); + } + } + } + // Check for a Centaur Checkstop do { @@ -207,8 +229,6 @@ int32_t PreAnalysis( ExtensibleChip * i_mbChip, STEP_CODE_DATA_STRUCT & i_sc, if ( i_sc.service_data->GetFlag(ServiceDataCollector::UNIT_CS) ) break; - CenMembufDataBundle * mbdb = getMembufDataBundle(i_mbChip); - ExtensibleChip * mcsChip = mbdb->getMcsChip(); if ( NULL == mcsChip ) { PRDF_ERR( PRDF_FUNC"CenMembufDataBundle::getMcsChip() failed" ); |