diff options
author | Caleb Palmer <cnpalmer@us.ibm.com> | 2018-02-12 16:13:37 -0600 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-02-17 14:58:41 -0500 |
commit | e7c2ef327998d6ab868776cdc2c2bb7592b8c17e (patch) | |
tree | 7b39705a1f90b22c09d01a5a775bf71c0ffea0cc /src/usr/fapi2 | |
parent | 94d559d6c39a9060bee1d114fa5436df5756628f (diff) | |
download | talos-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>
Diffstat (limited to 'src/usr/fapi2')
-rw-r--r-- | src/usr/fapi2/attribute_service.C | 28 |
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; |