summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2017-01-10 09:20:30 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2017-01-25 17:33:12 -0500
commitbf0eecf3d45af318152bb791d1a333c703233098 (patch)
tree5a246f2814f0def5969c7d54c5525b47201eee2c /src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
parentd1e5423ee58028a96c7e49bd012f12bcf498c9f4 (diff)
downloadtalos-hostboot-bf0eecf3d45af318152bb791d1a333c703233098.tar.gz
talos-hostboot-bf0eecf3d45af318152bb791d1a333c703233098.zip
PRD: added support functions in MemSymbol class
Change-Id: I5a13013902dd612a332fe141d41c5bf59c450ed2 RTC: 165381 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34741 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Caleb N. Palmer <cnpalmer@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/35413 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C')
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C46
1 files changed, 43 insertions, 3 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C b/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
index 86316ca02..6c8226af3 100755
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2013,2016 */
+/* Contributors Listed Below - COPYRIGHT 2013,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -103,9 +103,49 @@ MemSymbol MemSymbol::fromGalois( TargetHandle_t i_trgt, const MemRank & i_rank,
uint8_t MemSymbol::getDq() const
{
- return TYPE_MBA == getTargetType(iv_trgt) ? symbol2Dq<TYPE_MBA>(iv_symbol)
- : symbol2Dq<TYPE_MCA>(iv_symbol);
+ bool isMba = TYPE_MBA == getTargetType(iv_trgt);
+
+ return isMba ? symbol2Dq<TYPE_MBA>(iv_symbol)
+ : symbol2Dq<TYPE_MCA>(iv_symbol);
}
+//------------------------------------------------------------------------------
+
+uint8_t MemSymbol::getPortSlct() const
+{
+ bool isMba = TYPE_MBA == getTargetType(iv_trgt);
+
+ return isMba ? symbol2PortSlct<TYPE_MBA>(iv_symbol)
+ : symbol2PortSlct<TYPE_MCA>(iv_symbol);
+}
+
+//------------------------------------------------------------------------------
+
+uint8_t MemSymbol::getDram() const
+{
+ bool isMba = TYPE_MBA == getTargetType(iv_trgt);
+ bool isX4 = isDramWidthX4( iv_trgt );
+
+ return isMba ? isX4 ? symbol2Nibble<TYPE_MBA>( iv_symbol )
+ : symbol2Byte <TYPE_MBA>( iv_symbol )
+ : isX4 ? symbol2Nibble<TYPE_MCA>( iv_symbol )
+ : symbol2Byte <TYPE_MCA>( iv_symbol );
+}
+
+//------------------------------------------------------------------------------
+
+uint8_t MemSymbol::getDramPins() const
+{
+ bool isMba = TYPE_MBA == getTargetType(iv_trgt);
+ bool isX4 = isDramWidthX4( iv_trgt );
+
+ uint32_t dps = isMba ? MBA_DQS_PER_SYMBOL : MCA_DQS_PER_SYMBOL;
+ uint32_t spd = isMba ? isX4 ? MBA_SYMBOLS_PER_NIBBLE : MBA_SYMBOLS_PER_BYTE
+ : isX4 ? MCA_SYMBOLS_PER_NIBBLE : MCA_SYMBOLS_PER_BYTE;
+
+ return iv_pins << (((spd - 1) - (iv_symbol % spd)) * dps);
+}
+
+//------------------------------------------------------------------------------
} // end namespace PRDF
OpenPOWER on IntegriCloud