summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2018-02-12 16:13:37 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2018-02-17 14:58:41 -0500
commite7c2ef327998d6ab868776cdc2c2bb7592b8c17e (patch)
tree7b39705a1f90b22c09d01a5a775bf71c0ffea0cc
parent94d559d6c39a9060bee1d114fa5436df5756628f (diff)
downloadtalos-hostboot-e7c2ef327998d6ab868776cdc2c2bb7592b8c17e.tar.gz
talos-hostboot-e7c2ef327998d6ab868776cdc2c2bb7592b8c17e.zip
Fix bad dq wiring data translation
Change-Id: I6b7bc977d89a518cc9c152b9e6bff98d2789a5fd CQ: SW416910 Backport: release-fips910 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/53896 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@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> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
-rw-r--r--src/usr/fapi2/attribute_service.C28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/usr/fapi2/attribute_service.C b/src/usr/fapi2/attribute_service.C
index 71bce3e8e..1089f97e4 100644
--- a/src/usr/fapi2/attribute_service.C
+++ b/src/usr/fapi2/attribute_service.C
@@ -563,7 +563,7 @@ size_t DIMM_BAD_DQ_SIZE_BYTES = 0x50;
//******************************************************************************
ReturnCode __getMcsAndPortSlct( const Target<TARGET_TYPE_DIMM>& i_fapiDimm,
TARGETING::TargetHandle_t &o_mcsTarget,
- uint32_t o_ps )
+ uint32_t &o_ps )
{
fapi2::ReturnCode l_rc;
errlHndl_t l_errl = nullptr;
@@ -637,7 +637,7 @@ ReturnCode __getMcsAndPortSlct( const Target<TARGET_TYPE_DIMM>& i_fapiDimm,
ReturnCode __badDqBitmapGetHelperAttrs(
const TARGETING::TargetHandle_t i_dimmTarget,
uint8_t (&o_wiringData)[mss::PORTS_PER_MCS][mss::MAX_DQ_BITS],
- uint64_t &o_allMnfgFlags, uint32_t o_ps )
+ uint64_t &o_allMnfgFlags, uint32_t &o_ps )
{
fapi2::ReturnCode l_rc;
@@ -1002,7 +1002,17 @@ ReturnCode __mcLogicalToDimmDqHelper(
}
// use wiring data to translate c4 pin to dimm dq format
- o_dimm_dq = i_wiringData[i_ps][l_c4];
+ // Note: the wiring data maps from dimm dq format to c4 format
+ for ( uint8_t bit = 0; bit < mss::MAX_DQ_BITS; bit++ )
+ {
+ // Check to see which bit in the wiring data corresponds to our
+ // DIMM DQ format pin.
+ if ( i_wiringData[i_ps][bit] == l_c4 )
+ {
+ o_dimm_dq = bit;
+ break;
+ }
+ }
}while(0);
@@ -1097,16 +1107,8 @@ ReturnCode __dimmDqToMcLogicalHelper(
uint64_t l_c4 = 0;
// Translate from DIMM DQ format to C4 using wiring data
- for ( uint8_t bit = 0; bit < mss::MAX_DQ_BITS; bit++ )
- {
- // Check to see which bit in the wiring data corresponds to our DIMM DQ
- // format pin.
- if ( i_wiringData[i_ps][bit] == i_dimm_dq )
- {
- l_c4 = bit;
- break;
- }
- }
+ // Note: the wiring data maps from dimm dq format to c4 format
+ l_c4 = i_wiringData[i_ps][i_dimm_dq];
// determine whether this is a Nimbus or Cumulus chip
TARGETING::Target * masterProc = nullptr;
OpenPOWER on IntegriCloud