summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2018-10-30 16:06:34 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-11-01 09:48:40 -0500
commit629218645e526ff299b60c556153c7f54878eb74 (patch)
treee3e03d7378012e641b42216f237f0feea574be58 /src/usr/diag/prdf
parenta6cb27b4cfabe717b576d377f2fd458c3dce6cb7 (diff)
downloadtalos-hostboot-629218645e526ff299b60c556153c7f54878eb74.tar.gz
talos-hostboot-629218645e526ff299b60c556153c7f54878eb74.zip
PRD: Row Repair adjust for MBA Port 1 inversion
Change-Id: Idfc88610830942ebc89c5587cb91ca62d957c13b CQ: SW450182 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68192 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68217 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf')
-rw-r--r--src/usr/diag/prdf/common/plat/mem/prdfMemRowRepair.C10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemRowRepair.C b/src/usr/diag/prdf/common/plat/mem/prdfMemRowRepair.C
index dcc8a46df..c428776a5 100644
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemRowRepair.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemRowRepair.C
@@ -281,6 +281,16 @@ uint32_t setRowRepairData( TargetHandle_t i_dimm,
// validity - 1 bit
l_tmp = ( l_tmp << 1 ) | 0x1;
+ // Adjust for mba port 1 address inversion if necessary
+ if ( (1 == getDimmPort<T>(i_dimm) % 2) && (T == TYPE_MBA) )
+ {
+ // Bits flipped in port 1 inversion: (10:12, 16:22, 24, 26:28)
+ // mask:
+ // 0000 0000 0011 1000 1111 1110 1011 1000
+ uint32_t mask = 0x0038FEB8;
+ l_tmp ^= mask;
+ }
+
// ROW_REPAIR_SIZE = 4
uint8_t l_data[ROW_REPAIR::ROW_REPAIR_SIZE] = {0};
memcpy( l_data, &l_tmp, sizeof(l_data) );
OpenPOWER on IntegriCloud