summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plugins/prdfParserUtils.C
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2019-04-09 15:29:07 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2019-04-18 10:33:07 -0500
commit9d139bd7d99a87c6d11f6569482218badb49cc8b (patch)
treede94afe1294c8faa0acb828b21929746afa1482a /src/usr/diag/prdf/common/plugins/prdfParserUtils.C
parent36a58f1f80473c1ee39e449c85f78ead269c0348 (diff)
downloadtalos-hostboot-9d139bd7d99a87c6d11f6569482218badb49cc8b.tar.gz
talos-hostboot-9d139bd7d99a87c6d11f6569482218badb49cc8b.zip
PRD: Axone/Explorer Misc Updates needed for TdCtlr/DataBundles
Change-Id: Ia769f949f984c810b998c19fd32c7c3af2e06244 RTC: 207388 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75791 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Paul Greenwood <paul.greenwood@ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/76086 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/plugins/prdfParserUtils.C')
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfParserUtils.C56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/common/plugins/prdfParserUtils.C b/src/usr/diag/prdf/common/plugins/prdfParserUtils.C
index c2ccd38f2..9d2233e75 100644
--- a/src/usr/diag/prdf/common/plugins/prdfParserUtils.C
+++ b/src/usr/diag/prdf/common/plugins/prdfParserUtils.C
@@ -87,6 +87,15 @@ uint8_t symbol2Dq<TARGETING::TYPE_MCA>( uint8_t i_symbol )
//------------------------------------------------------------------------------
template<>
+uint8_t symbol2Dq<TARGETING::TYPE_MEM_PORT>( uint8_t i_symbol )
+{
+ // MEM_PORT case is identical to MCA
+ return symbol2Dq<TARGETING::TYPE_MCA>(i_symbol);
+}
+
+//------------------------------------------------------------------------------
+
+template<>
uint8_t symbol2PortSlct<TARGETING::TYPE_MBA>( uint8_t i_symbol )
{
uint8_t portSlct = MAX_PORT_PER_MBA;
@@ -113,6 +122,16 @@ uint8_t symbol2PortSlct<TARGETING::TYPE_MCA>( uint8_t i_symbol )
//------------------------------------------------------------------------------
template<>
+uint8_t symbol2PortSlct<TARGETING::TYPE_MEM_PORT>( uint8_t i_symbol )
+{
+ // Port select does not exist on MEM_PORT. Always return 0 so that code will
+ // continue to work.
+ return 0;
+}
+
+//------------------------------------------------------------------------------
+
+template<>
uint8_t dq2Symbol<TARGETING::TYPE_MBA>( uint8_t i_dq, uint8_t i_ps )
{
uint8_t sym = SYMBOLS_PER_RANK;
@@ -199,6 +218,15 @@ uint8_t nibble2Symbol<TARGETING::TYPE_MCA>( uint8_t i_x4Dram )
//------------------------------------------------------------------------------
template<>
+uint8_t nibble2Symbol<TARGETING::TYPE_MEM_PORT>( uint8_t i_x4Dram )
+{
+ // MEM_PORT case is identical to MCA
+ return nibble2Symbol<TARGETING::TYPE_MCA>(i_x4Dram);
+}
+
+//------------------------------------------------------------------------------
+
+template<>
uint8_t byte2Symbol<TARGETING::TYPE_MBA>( uint8_t i_x8Dram )
{
return (MBA_BYTES_PER_RANK > i_x8Dram) ? (i_x8Dram * MBA_SYMBOLS_PER_BYTE)
@@ -230,6 +258,15 @@ uint8_t byte2Symbol<TARGETING::TYPE_MCA>( uint8_t i_x8Dram )
//------------------------------------------------------------------------------
template<>
+uint8_t byte2Symbol<TARGETING::TYPE_MEM_PORT>( uint8_t i_x8Dram )
+{
+ // MEM_PORT case is identical to MCA
+ return byte2Symbol<TARGETING::TYPE_MCA>(i_x8Dram);
+}
+
+//------------------------------------------------------------------------------
+
+template<>
uint8_t symbol2Nibble<TARGETING::TYPE_MBA>( uint8_t i_symbol )
{
return (SYMBOLS_PER_RANK > i_symbol) ? (i_symbol / MBA_SYMBOLS_PER_NIBBLE)
@@ -249,6 +286,15 @@ uint8_t symbol2Nibble<TARGETING::TYPE_MCA>( uint8_t i_symbol )
//------------------------------------------------------------------------------
template<>
+uint8_t symbol2Nibble<TARGETING::TYPE_MEM_PORT>( uint8_t i_symbol )
+{
+ // MEM_PORT case is identical to MCA
+ return symbol2Nibble<TARGETING::TYPE_MCA>(i_symbol);
+}
+
+//------------------------------------------------------------------------------
+
+template<>
uint8_t symbol2Byte<TARGETING::TYPE_MBA>( uint8_t i_symbol )
{
return (SYMBOLS_PER_RANK > i_symbol) ? (i_symbol / MBA_SYMBOLS_PER_BYTE)
@@ -265,6 +311,16 @@ uint8_t symbol2Byte<TARGETING::TYPE_MCA>( uint8_t i_symbol )
: MEM_BYTES_PER_RANK;
}
+//------------------------------------------------------------------------------
+
+template<>
+uint8_t symbol2Byte<TARGETING::TYPE_MEM_PORT>( uint8_t i_symbol )
+{
+ // MEM_PORT case is identical to MCA
+ return symbol2Byte<TARGETING::TYPE_MCA>(i_symbol);
+}
+
+//------------------------------------------------------------------------------
/**
* @brief Find the first symbol of the given DRAM index
OpenPOWER on IntegriCloud