diff options
author | Caleb Palmer <cnpalmer@us.ibm.com> | 2018-10-30 16:06:34 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-11-01 09:48:40 -0500 |
commit | 629218645e526ff299b60c556153c7f54878eb74 (patch) | |
tree | e3e03d7378012e641b42216f237f0feea574be58 /src/usr/diag/prdf | |
parent | a6cb27b4cfabe717b576d377f2fd458c3dce6cb7 (diff) | |
download | talos-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.C | 10 |
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) ); |