summaryrefslogtreecommitdiffstats
path: root/src/usr/diag
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag')
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Mba.rule21
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Membuf_regs_MEM.rule22
-rw-r--r--src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCaptureData.C65
-rw-r--r--src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCaptureData.H4
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C2
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfP8Mcs.C2
6 files changed, 62 insertions, 54 deletions
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Mba.rule b/src/usr/diag/prdf/common/plat/pegasus/Mba.rule
index e8d454fbc..e6593d656 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Mba.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Mba.rule
@@ -69,6 +69,7 @@ chip Mba
reset (&, 0x03010601);
mask (|, 0x03010605);
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MBAFIR_MASK
@@ -76,6 +77,7 @@ chip Mba
name "MBU.MBA01.MBA_MCBIST.SCOMFIR.MBAFIRMASK";
scomaddr 0x03010603;
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MBAFIR_ACT0
@@ -83,6 +85,7 @@ chip Mba
name "MBU.MBA01.MBA_MCBIST.SCOMFIR.MBAFIRACT0";
scomaddr 0x03010606;
capture group FirRegs;
+ capture group MemChipletRegs;
capture req nonzero("MBAFIR");
};
@@ -91,6 +94,7 @@ chip Mba
name "MBU.MBA01.MBA_MCBIST.SCOMFIR.MBAFIRACT1";
scomaddr 0x03010607;
capture group FirRegs;
+ capture group MemChipletRegs;
capture req nonzero("MBAFIR");
};
@@ -106,6 +110,7 @@ chip Mba
scomaddr 0x0301041b;
reset (&, 0x0301041c);
capture group FirRegs;
+ capture group MemChipletRegs;
};
############################################################################
@@ -119,6 +124,7 @@ chip Mba
reset (&, 0x800200910301143F);
mask (|, 0x800200950301143F);
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MBADDRPHYFIR_AND
@@ -134,6 +140,7 @@ chip Mba
name "DPHY01.PHY01_DDRPHY_FIR_MASK_REG";
scomaddr 0x800200930301143F;
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MBADDRPHYFIR_ACT0
@@ -141,6 +148,7 @@ chip Mba
name "DPHY01.PHY01_DDRPHY_FIR_ACTION0_REG";
scomaddr 0x800200960301143F;
capture group FirRegs;
+ capture group MemChipletRegs;
capture req nonzero("MBADDRPHYFIR");
};
@@ -149,6 +157,7 @@ chip Mba
name "DPHY01.PHY01_DDRPHY_FIR_ACTION1_REG";
scomaddr 0x800200970301143F;
capture group FirRegs;
+ capture group MemChipletRegs;
capture req nonzero("MBADDRPHYFIR");
};
@@ -163,6 +172,7 @@ chip Mba
reset (&, 0x03010401);
mask (|, 0x03010405);
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MBACALFIR_AND
@@ -178,6 +188,7 @@ chip Mba
name "MBU.MBA01.MBA_SRQ.MBACALFIR_MASK";
scomaddr 0x03010403;
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MBACALFIR_ACT0
@@ -185,6 +196,7 @@ chip Mba
name "MBU.MBA01.MBA_SRQ.MBACALFIR_ACTION0";
scomaddr 0x03010406;
capture group FirRegs;
+ capture group MemChipletRegs;
capture req nonzero("MBACALFIR");
};
@@ -193,6 +205,7 @@ chip Mba
name "MBU.MBA01.MBA_SRQ.MBACALFIR_ACTION1";
scomaddr 0x03010407;
capture group FirRegs;
+ capture group MemChipletRegs;
capture req nonzero("MBACALFIR");
};
@@ -207,6 +220,7 @@ chip Mba
reset (&, 0x03010612);
mask (|, 0x03010614);
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MBASPA_AND
@@ -222,6 +236,7 @@ chip Mba
name "MBU.MBA01.MBA_MCBIST.SCOMFIR.MBSPAMSKQ";
scomaddr 0x03010614;
capture group FirRegs;
+ capture group MemChipletRegs;
};
############################################################################
@@ -233,6 +248,7 @@ chip Mba
name "MBU.MBA01.MBA_SRQ.MBA_ERR_REPORTQ";
scomaddr 0x0301041A;
capture group CerrRegs;
+ capture group MemChipletRegs;
};
register MBA_MCBERRPTQ
@@ -240,6 +256,7 @@ chip Mba
name "MBU.MBA01.MBA_MCBIST.SCOMFIR.MBA_MCBERRPTQ";
scomaddr 0x030106E7;
capture group CerrRegs;
+ capture group MemChipletRegs;
};
register DDRPHY_APB_FIR_ERR0_P0
@@ -247,6 +264,7 @@ chip Mba
name "DPHY01.DDRPHY_APB_FIR_ERR0_P0";
scomaddr 0x8000D0060301143F;
capture group CerrRegs;
+ capture group MemChipletRegs;
};
register DDRPHY_APB_FIR_ERR1_P0
@@ -254,6 +272,7 @@ chip Mba
name "DPHY01.DDRPHY_APB_FIR_ERR1_P0";
scomaddr 0x8000D0070301143F;
capture group CerrRegs;
+ capture group MemChipletRegs;
};
register DDRPHY_APB_FIR_ERR0_P1
@@ -261,6 +280,7 @@ chip Mba
name "DPHY01.DDRPHY_APB_FIR_ERR0_P1";
scomaddr 0x8001D0060301143F;
capture group CerrRegs;
+ capture group MemChipletRegs;
};
register DDRPHY_APB_FIR_ERR1_P1
@@ -268,6 +288,7 @@ chip Mba
name "DPHY01.DDRPHY_APB_FIR_ERR1_P1";
scomaddr 0x8001D0070301143F;
capture group CerrRegs;
+ capture group MemChipletRegs;
};
############################################################################
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Membuf_regs_MEM.rule b/src/usr/diag/prdf/common/plat/pegasus/Membuf_regs_MEM.rule
index 63016200b..f2da800dc 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Membuf_regs_MEM.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Membuf_regs_MEM.rule
@@ -29,40 +29,40 @@
{
name "TCM.XFIR";
scomaddr 0x03040000;
- capture group default;
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MEM_CHIPLET_RE_FIR
{
name "TCM.RFIR";
scomaddr 0x03040001;
- capture group default;
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MEM_CHIPLET_FIR_MASK
{
name "TCM.FIR_MASK";
scomaddr 0x03040002;
- capture group default;
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MEM_CHIPLET_SPA
{
name "TCM.EPS.FIR.SPATTN";
scomaddr 0x03040004;
- capture group default;
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MEM_CHIPLET_SPA_MASK
{
name "TCM.EPS.FIR.SPA_MASK";
scomaddr 0x03040007;
- capture group default;
capture group FirRegs;
+ capture group MemChipletRegs;
};
############################################################################
@@ -75,16 +75,16 @@
scomaddr 0x0304000a;
reset (&, 0x0304000b);
mask (|, 0x0304000f);
- capture group default;
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MEM_LFIR_MASK
{
name "TCM.EPS.FIR.LOCAL_FIR_MASK";
scomaddr 0x0304000d;
- capture group default;
capture group FirRegs;
+ capture group MemChipletRegs;
};
register MEM_LFIR_ACT0
@@ -92,8 +92,8 @@
name "TCM.EPS.FIR.LOCAL_FIR_ACTION0";
scomaddr 0x03040010;
capture type secondary;
- capture group default;
capture group FirRegs;
+ capture group MemChipletRegs;
capture req nonzero("MEM_LFIR");
};
@@ -102,8 +102,8 @@
name "TCM.EPS.FIR.LOCAL_FIR_ACTION1";
scomaddr 0x03040011;
capture type secondary;
- capture group default;
capture group FirRegs;
+ capture group MemChipletRegs;
capture req nonzero("MEM_LFIR");
};
@@ -117,8 +117,8 @@
{
name "FBIST.FBM.FBM_FIR_REG";
scomaddr 0x03010480;
- capture group default;
capture group FirRegs;
+ capture group MemChipletRegs;
};
############################################################################
@@ -129,7 +129,7 @@
{
name "TCM.ERROR_STATUS";
scomaddr 0x03030009;
- capture group default;
capture group CerrRegs;
+ capture group MemChipletRegs;
};
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCaptureData.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCaptureData.C
index f0d3c6bd3..beeebf421 100644
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCaptureData.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCaptureData.C
@@ -54,9 +54,9 @@ namespace CenMbaCaptureData
//------------------------------------------------------------------------------
-void addMbaFirRegs( ExtensibleChip * i_membChip, CaptureData & io_cd )
+void addMemChipletFirRegs( ExtensibleChip * i_membChip, CaptureData & io_cd )
{
- #define PRDF_FUNC "[CenMbaCaptureData::addMbaFirRegs] "
+ #define PRDF_FUNC "[CenMbaCaptureData::addMemChipletFirRegs] "
int32_t l_rc = SUCCESS;
@@ -75,57 +75,44 @@ void addMbaFirRegs( ExtensibleChip * i_membChip, CaptureData & io_cd )
break;
}
- SCAN_COMM_REGISTER_CLASS * cs_reg, * re_reg, * firmsk_reg;
- cs_reg = i_membChip->getRegister("MEM_CHIPLET_CS_FIR");
- re_reg = i_membChip->getRegister("MEM_CHIPLET_RE_FIR");
- firmsk_reg = i_membChip->getRegister("MEM_CHIPLET_FIR_MASK");
-
- SCAN_COMM_REGISTER_CLASS * spa_reg, * spamsk_reg;
- spa_reg = i_membChip->getRegister("MEM_CHIPLET_SPA");
- spamsk_reg = i_membChip->getRegister("MEM_CHIPLET_SPA_MASK");
-
- l_rc = cs_reg->Read() | re_reg->Read() | firmsk_reg->Read();
- l_rc |= spa_reg->Read() | spamsk_reg->Read();
+ SCAN_COMM_REGISTER_CLASS * cs_global, * re_global, * spa_global;
+ cs_global = i_membChip->getRegister("GLOBAL_CS_FIR");
+ re_global = i_membChip->getRegister("GLOBAL_RE_FIR");
+ spa_global = i_membChip->getRegister("GLOBAL_SPA");
+ l_rc = cs_global->Read() | re_global->Read() | spa_global->Read();
if ( SUCCESS != l_rc )
{
- PRDF_ERR( PRDF_FUNC"Failed to read a MEM_CHIPLET register on "
+ PRDF_ERR( PRDF_FUNC"Failed to read a GLOBAL register on "
"0x%08x", i_membChip->GetId() );
break;
}
- uint16_t cs_tmp = cs_reg->GetBitFieldJustified(0,16);
- uint16_t re_tmp = re_reg->GetBitFieldJustified(0,16) >> 2;
- uint16_t msk_tmp = firmsk_reg->GetBitFieldJustified(0,16);
-
- uint16_t csre_attns = (cs_tmp | re_tmp) & ~msk_tmp;
-
- uint16_t spa_attns = spa_reg->GetBitFieldJustified(0,16) &
- ~spamsk_reg->GetBitFieldJustified(0,16);
+ // If global bit 3 is not on, can't scom mem chiplets or mba's
+ if( ! (cs_global->IsBitSet(3) ||
+ re_global->IsBitSet(3) ||
+ spa_global->IsBitSet(3)) )
+ {
+ break;
+ }
- uint16_t mba_csre_msk[] = { 0x0648, // bits 5, 6, 9, 12
- 0x01a4 }; // bits 7, 8, 10, 13
- uint16_t mba_spa_msk[] = { 0x8000, // bit 0
- 0x4000 }; // bit 1
+ i_membChip->CaptureErrorData(io_cd,
+ Util::hashString("MemChipletRegs"));
CenMembufDataBundle * membdb = getMembufDataBundle( i_membChip );
for ( uint32_t i = 0; i < MAX_MBA_PER_MEMBUF; i++ )
{
- if ( (0 != (csre_attns & mba_csre_msk[i])) ||
- (0 != (spa_attns & mba_spa_msk[i] )) )
+ ExtensibleChip * mbaChip = membdb->getMbaChip(i);
+ if ( NULL == mbaChip )
{
- ExtensibleChip * mbaChip = membdb->getMbaChip(i);
- if ( NULL == mbaChip )
- {
- PRDF_ERR( PRDF_FUNC"MEM_CHIPLET registers indicated an "
- "attention but no chip found: i_membChip=0x%08x "
- "i=%d", i_membChip->GetId(), i );
- continue;
- }
-
- mbaChip->CaptureErrorData(io_cd, Util::hashString("FirRegs") );
- mbaChip->CaptureErrorData(io_cd, Util::hashString("CerrRegs"));
+ PRDF_ERR( PRDF_FUNC"MEM_CHIPLET registers indicated an "
+ "attention but no chip found: i_membChip=0x%08x "
+ "i=%d", i_membChip->GetId(), i );
+ continue;
}
+
+ mbaChip->CaptureErrorData(io_cd,
+ Util::hashString("MemChipletRegs") );
}
} while (0);
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCaptureData.H b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCaptureData.H
index 4185dc2f3..b586ce9f1 100644
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCaptureData.H
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaCaptureData.H
@@ -43,7 +43,7 @@ namespace CenMbaCaptureData
{
/**
- * @brief Adds all MBA FirRegs and CerrRegs to the capture data for any MBA
+ * @brief Adds all Mem chiplet and MBA regs to the capture data for any MBA
* reporting an active attention via the MEM_CHIPLET_FIRs.
* @note This is only intended to be called in the MCS or MEMBUF PreAnalysis()
* plugins to capture the required FIR registers for FFDC.
@@ -53,7 +53,7 @@ namespace CenMbaCaptureData
* @param i_membChip A MEMBUF chip.
* @param io_cd Capture data struct.
*/
-void addMbaFirRegs( ExtensibleChip * i_membChip, CaptureData & io_cd );
+void addMemChipletFirRegs( ExtensibleChip * i_membChip, CaptureData & io_cd );
/**
* @brief Adds Memory ECC FFDC to an error log.
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
index 7ae2e4d22..18011256c 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
@@ -222,7 +222,7 @@ int32_t PreAnalysis( ExtensibleChip * i_mbChip, STEP_CODE_DATA_STRUCT & i_sc,
mcsChip->CaptureErrorData( cd, Util::hashString("FirRegs") );
mcsChip->CaptureErrorData( cd, Util::hashString("CerrRegs") );
- CenMbaCaptureData::addMbaFirRegs( i_mbChip, cd );
+ CenMbaCaptureData::addMemChipletFirRegs( i_mbChip, cd );
}
// Check for a Centaur Checkstop
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfP8Mcs.C b/src/usr/diag/prdf/common/plat/pegasus/prdfP8Mcs.C
index 5fa8f905c..399fd6ed1 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfP8Mcs.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfP8Mcs.C
@@ -126,7 +126,7 @@ int32_t PreAnalysis( ExtensibleChip * i_mcsChip, STEP_CODE_DATA_STRUCT & i_sc,
membChip->CaptureErrorData( cd, Util::hashString("FirRegs") );
membChip->CaptureErrorData( cd, Util::hashString("CerrRegs") );
- CenMbaCaptureData::addMbaFirRegs( membChip, cd );
+ CenMbaCaptureData::addMemChipletFirRegs( membChip, cd );
}
// Check for a Centaur Checkstop
OpenPOWER on IntegriCloud