diff options
author | Caleb Palmer <cnpalmer@us.ibm.com> | 2017-11-14 15:39:17 -0600 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2017-11-17 11:06:53 -0500 |
commit | fec3fa592c190507b356c8cb510b6a93acd3c363 (patch) | |
tree | 631013c08bf92aa6c0dc138c5bb6c69bc1aea7dc | |
parent | 5ef559321401f8b1d71de95f707f595a57ed522f (diff) | |
download | talos-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.C | 2 | ||||
-rw-r--r-- | src/usr/diag/prdf/common/plat/mem/prdfMemMark.H | 9 | ||||
-rwxr-xr-x | src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C | 14 | ||||
-rwxr-xr-x | src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H | 14 |
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; /** |