summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2013-04-30 21:18:57 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-05-15 11:42:40 -0500
commit1a101d381cc150e59120edc22bdf69b9ff66b425 (patch)
tree6bde7f8d63306d6a8a20e5443d878a44dcb13a64 /src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
parented35ee5f59ea4768297116a505c2e8ad5d6b969b (diff)
downloadtalos-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-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C24
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" );
OpenPOWER on IntegriCloud