summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plugins
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2017-02-22 14:07:14 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2017-03-02 10:32:42 -0500
commit490f862dce24ca0978dd1b61eeb38f91fef3a495 (patch)
treeaf130c00afa6bb55842705cbf2a181f89631a900 /src/usr/diag/prdf/common/plugins
parent552f94ffb84cd29712f71c4665cc54a65f208021 (diff)
downloadblackbird-hostboot-490f862dce24ca0978dd1b61eeb38f91fef3a495.tar.gz
blackbird-hostboot-490f862dce24ca0978dd1b61eeb38f91fef3a495.zip
PRD: Update calloutMemoryMru function
Change-Id: I5386e8b9d964ecadb4554261db8cec88a480b3f3 RTC: 168770 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36886 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/37282 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/plugins')
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfLogParse_common.C23
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfMemoryMruData.H6
2 files changed, 16 insertions, 13 deletions
diff --git a/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C b/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C
index c459d12c8..bdb1372e1 100644
--- a/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C
+++ b/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C
@@ -52,6 +52,7 @@
//#include <prdfProcLogParse.H> TODO: RTC 136050
#include <prdfParserEnums.H>
#include <prdfMemoryMruData.H>
+#include <prdfBitString.H>
#include <hwas/common/hwasCallout.H>
@@ -764,20 +765,22 @@ bool parseExtMemMru( void * i_buffer, uint32_t i_buflen,
}
else
{
- uint8_t * buf = (uint8_t *)i_buffer;
- MemoryMruData::ExtendedData extMemMru;
-
- extMemMru.mmMeld.u = buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3];
+ BitString bs( (i_buflen*8), (CPU_WORD*)i_buffer );
+ uint32_t curPos = 0;
- extMemMru.cardType = buf[4];
+ MemoryMruData::ExtendedData extMemMru;
- extMemMru.isBufDimm = (buf[5] >> 7) & 0x1;
- extMemMru.isX4Dram = (buf[5] >> 6) & 0x1;
- extMemMru.isValid = (buf[5] >> 5) & 0x1;
+ extMemMru.mmMeld.u = bs.getFieldJustify( curPos, 32 ); curPos+=32;
+ extMemMru.cardType = bs.getFieldJustify( curPos, 8 ); curPos+= 8;
+ extMemMru.isBufDimm = bs.getFieldJustify( curPos, 1 ); curPos+= 1;
+ extMemMru.isX4Dram = bs.getFieldJustify( curPos, 1 ); curPos+= 1;
+ extMemMru.isValid = bs.getFieldJustify( curPos, 1 ); curPos+= 1;
- memcpy( &extMemMru.dqMapping[0], &buf[8],
- sizeof(extMemMru.dqMapping) );
+ for ( uint32_t i = 0; i < sizeof(extMemMru.dqMapping); i++ )
+ {
+ extMemMru.dqMapping[i] = bs.getFieldJustify( curPos+(i*8), 8 );
+ }
char heading[72];
snprintf( heading, 72, "Extended MemoryMru (0x%08x)",
diff --git a/src/usr/diag/prdf/common/plugins/prdfMemoryMruData.H b/src/usr/diag/prdf/common/plugins/prdfMemoryMruData.H
index c32e1645e..a9a4498d3 100644
--- a/src/usr/diag/prdf/common/plugins/prdfMemoryMruData.H
+++ b/src/usr/diag/prdf/common/plugins/prdfMemoryMruData.H
@@ -141,9 +141,9 @@ struct ExtendedData
///< 0=otherwise. Needed just in case there
///< was a failure to gather extended data.
uint32_t reserved :21; ///< Future use / nice boundary
- uint8_t dqMapping[80]; ///< Centaur DQ to DIMM DQ mapping (only used
- ///< when the MemoryMru contains a single
- ///< IS DIMM callout).
+ uint8_t dqMapping[DQS_PER_DIMM]; ///< Centaur DQ to DIMM DQ mapping
+ ///< (only used when the MemoryMru
+ ///< contains a single IS DIMM callout).
/** Default contructor */
ExtendedData() :
OpenPOWER on IntegriCloud