summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2017-11-14 15:39:17 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2017-11-17 11:06:53 -0500
commitfec3fa592c190507b356c8cb510b6a93acd3c363 (patch)
tree631013c08bf92aa6c0dc138c5bb6c69bc1aea7dc
parent5ef559321401f8b1d71de95f707f595a57ed522f (diff)
downloadtalos-hostboot-fec3fa592c190507b356c8cb510b6a93acd3c363.tar.gz
talos-hostboot-fec3fa592c190507b356c8cb510b6a93acd3c363.zip
PRD: Use chip's Galois code when writing chip marks
Change-Id: I59b557cd23f22af3a3a6c655e4fe6d806f06a6a7 CQ: SW408185 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49678 Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49838 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>
-rw-r--r--src/usr/diag/prdf/common/plat/mem/prdfMemMark.C2
-rw-r--r--src/usr/diag/prdf/common/plat/mem/prdfMemMark.H9
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C14
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H14
4 files changed, 24 insertions, 15 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C b/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C
index c53922b23..078ac6abb 100644
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C
@@ -123,7 +123,7 @@ uint32_t writeChipMark<TYPE_MCA>( ExtensibleChip * i_chip,
SCAN_COMM_REGISTER_CLASS * hwms = i_chip->getRegister( msName );
// HWMSx[0:7] set this to the Galois field.
- hwms->SetBitFieldJustified( 0, 8, i_mark.getGalois() );
+ hwms->SetBitFieldJustified( 0, 8, i_mark.getChipGalois() );
// HWMSx[8] confirmed with the hardware team that this will not trigger
// another MPE attention and that they want this set to 1.
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemMark.H b/src/usr/diag/prdf/common/plat/mem/prdfMemMark.H
index 8474b5ce8..4958ec985 100644
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemMark.H
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemMark.H
@@ -80,6 +80,15 @@ class MemMark
/** @return The Galois field representing this mark. */
uint8_t getGalois() const { return iv_galois; }
+ /** @return The Galois field associated with the chip this mark is in.
+ * Will correspond to the rightmost/least index symbol in the chip. You
+ * must check for a valid symbol before calling this function. */
+ uint8_t getChipGalois() const
+ {
+ PRDF_ASSERT( iv_symbol.isValid() );
+ return symbol2Galois[(iv_symbol.getSymbol()/4)*4];
+ }
+
/** @return The symbol representing this mark. */
MemSymbol getSymbol() const { return iv_symbol; }
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C b/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
index 97d52fb07..30db870cf 100755
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
@@ -41,20 +41,6 @@ using namespace PlatServices;
using namespace CEN_SYMBOL;
using namespace PARSERUTILS;
-// Symbol to Galois code mapping table
-static const uint8_t symbol2Galois[] =
-{
- 0x80, 0xa0, 0x90, 0xf0, 0x08, 0x0a, 0x09, 0x0f, // symbols 0- 7
- 0x98, 0xda, 0xb9, 0x7f, 0x91, 0xd7, 0xb2, 0x78, // symbols 8-15
- 0x28, 0xea, 0x49, 0x9f, 0x9a, 0xd4, 0xbd, 0x76, // symbols 16-23
- 0x60, 0xb0, 0xc0, 0x20, 0x06, 0x0b, 0x0c, 0x02, // symbols 24-31
- 0xc6, 0xfb, 0x1c, 0x42, 0xca, 0xf4, 0x1d, 0x46, // symbols 32-39
- 0xd6, 0x8b, 0x3c, 0xc2, 0xcb, 0xf3, 0x1f, 0x4e, // symbols 40-47
- 0xe0, 0x10, 0x50, 0xd0, 0x0e, 0x01, 0x05, 0x0d, // symbols 48-55
- 0x5e, 0x21, 0xa5, 0x3d, 0x5b, 0x23, 0xaf, 0x3e, // symbols 56-63
- 0xfe, 0x61, 0x75, 0x5d, 0x51, 0x27, 0xa2, 0x38, // symbols 64-71
-};
-
//##############################################################################
// class MemSymbol
//##############################################################################
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H b/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H
index 30caa651b..c69cd4a7b 100755
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H
@@ -41,6 +41,20 @@
namespace PRDF
{
+// Symbol to Galois code mapping table
+static const uint8_t symbol2Galois[] =
+{
+ 0x80, 0xa0, 0x90, 0xf0, 0x08, 0x0a, 0x09, 0x0f, // symbols 0- 7
+ 0x98, 0xda, 0xb9, 0x7f, 0x91, 0xd7, 0xb2, 0x78, // symbols 8-15
+ 0x28, 0xea, 0x49, 0x9f, 0x9a, 0xd4, 0xbd, 0x76, // symbols 16-23
+ 0x60, 0xb0, 0xc0, 0x20, 0x06, 0x0b, 0x0c, 0x02, // symbols 24-31
+ 0xc6, 0xfb, 0x1c, 0x42, 0xca, 0xf4, 0x1d, 0x46, // symbols 32-39
+ 0xd6, 0x8b, 0x3c, 0xc2, 0xcb, 0xf3, 0x1f, 0x4e, // symbols 40-47
+ 0xe0, 0x10, 0x50, 0xd0, 0x0e, 0x01, 0x05, 0x0d, // symbols 48-55
+ 0x5e, 0x21, 0xa5, 0x3d, 0x5b, 0x23, 0xaf, 0x3e, // symbols 56-63
+ 0xfe, 0x61, 0x75, 0x5d, 0x51, 0x27, 0xa2, 0x38, // symbols 64-71
+};
+
class ExtensibleChip;
/**
OpenPOWER on IntegriCloud