summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C3
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfCenLogParse.C8
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfMemoryMruData.H5
3 files changed, 10 insertions, 6 deletions
diff --git a/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C b/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C
index 5f599d114..5f55524e3 100644
--- a/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C
+++ b/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C
@@ -659,6 +659,9 @@ errlHndl_t ErrDataService::GenerateSrcPfa( ATTENTION_TYPE i_attnType,
// Get the 32 bit representation of MemMru
l_memData.memMru32bits = memMru.toUint32();
+ // Get the DRAM width.
+ l_memData.isX4 = isDramWidthX4( l_mba ) ? 1 : 0;
+
// Add mapping to ELOG and parser will print it
PRDF_ADD_FFDC( iv_errl, (const char*)(&l_memData),
sizeof(memMruDqInfo),
diff --git a/src/usr/diag/prdf/common/plugins/prdfCenLogParse.C b/src/usr/diag/prdf/common/plugins/prdfCenLogParse.C
index 83edbc4b5..734c21262 100644
--- a/src/usr/diag/prdf/common/plugins/prdfCenLogParse.C
+++ b/src/usr/diag/prdf/common/plugins/prdfCenLogParse.C
@@ -2799,8 +2799,8 @@ void getBadDqBitmapEntry( uint8_t * i_buffer, char * o_str )
int32_t getMemMruDramSite( memMruDqInfo &i_memDqStruct,
char * o_data )
{
- char l_dqMapBuffer[4];
- memset (l_dqMapBuffer, 0, 4);
+ char l_dqMapBuffer[10];
+ memset (l_dqMapBuffer, 0, 10);
int32_t o_rc = SUCCESS;
MemoryMruData::MemMruMeld mm; mm.u = i_memDqStruct.memMru32bits;
@@ -2817,7 +2817,6 @@ int32_t getMemMruDramSite( memMruDqInfo &i_memDqStruct,
uint8_t mrank = mm.s.mrank;
// Get the DRAM site location information.
- bool x4Dram;
const char * cardName;
const char ** dramMap;
const char ** dqMap;
@@ -2825,6 +2824,7 @@ int32_t getMemMruDramSite( memMruDqInfo &i_memDqStruct,
// This routine will only succeed on CDIMMs
if (i_memDqStruct.bufferedDimm)
{
+ bool x4Dram = false; // Not used in this function.
o_rc = getDramSiteInfo( type, mbaPos, ps, mrank, x4Dram,
cardName, dqMap, dramMap );
}
@@ -2835,7 +2835,7 @@ int32_t getMemMruDramSite( memMruDqInfo &i_memDqStruct,
uint8_t dqIdx = transDramSpare( symbol2CenDq(symbol),
mm.s.dramSpared );
- uint8_t dramIdx = dqSiteIdx2DramSiteIdx( dqIdx, x4Dram );
+ uint8_t dramIdx = dqSiteIdx2DramSiteIdx( dqIdx, i_memDqStruct.isX4 );
// Add the DRAM site data based on the pin info.
strcpy( o_data, "" );
diff --git a/src/usr/diag/prdf/common/plugins/prdfMemoryMruData.H b/src/usr/diag/prdf/common/plugins/prdfMemoryMruData.H
index 136f0994e..a3b4caaf0 100644
--- a/src/usr/diag/prdf/common/plugins/prdfMemoryMruData.H
+++ b/src/usr/diag/prdf/common/plugins/prdfMemoryMruData.H
@@ -42,8 +42,9 @@ struct memMruDqInfo
{
uint32_t memMru32bits; // 32 bit MemoryMru format
uint32_t cardType :8; // cardType for Centaur DIMMs
- uint32_t bufferedDimm :1; // Centaur DIMM (1) or IS DIMM (0)
- uint32_t reserved :23; // Future use / nice boundary
+ uint32_t bufferedDimm :1; // 1=Centaur DIMM, 0=IS DIMM
+ uint32_t isX4 :1; // 1=x4 DRAM DIMM, 0=x8 DRAM DIMM
+ uint32_t reserved :22; // Future use / nice boundary
uint8_t dqMapping[80]; // CenDQ to DimmDQ mapping
};
OpenPOWER on IntegriCloud