diff options
author | Prachi Gupta <pragupta@us.ibm.com> | 2015-03-16 10:29:11 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-03-26 07:45:45 -0500 |
commit | acceb1daf1ef196c0312c3a0a5f3df22b70ae890 (patch) | |
tree | a17b43d93cefc75a50b1dceae721363718607474 /src/usr/hwpf/hwp/dram_initialization | |
parent | f93b0046fc9772284ec766b22a350a998fcd47f4 (diff) | |
download | talos-hostboot-acceb1daf1ef196c0312c3a0a5f3df22b70ae890.tar.gz talos-hostboot-acceb1daf1ef196c0312c3a0a5f3df22b70ae890.zip |
SW297647: Habanero ISDIMM Temperature Sensor Nack Errors
Change-Id: I6d92330678d89d44133522a1737cbb14fad81e8f
CQ:SW297647
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16183
Reviewed-by: PRACHI GUPTA <pragupta@us.ibm.com>
Reviewed-by: Thi N. Tran <thi@us.ibm.com>
Tested-by: Thi N. Tran <thi@us.ibm.com>
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16381
Tested-by: Jenkins Server
Reviewed-by: MATTHEW A. PLOETZ <maploetz@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/dram_initialization')
-rw-r--r-- | src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C b/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C index e09f47f64..a98b58ddf 100644 --- a/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C +++ b/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C @@ -22,7 +22,7 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: mss_thermal_init.C,v 1.19 2015/02/12 23:23:56 pardeik Exp $ +// $Id: mss_thermal_init.C,v 1.20 2015/03/02 20:43:37 pardeik Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/centaur/working/procedures/ipl/fapi/mss_thermal_init.C,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2011 @@ -49,6 +49,8 @@ //------------------------------------------------------------------------------ // Version:| Author: | Date: | Comment: //---------|----------|---------|----------------------------------------------- +// 1.20 | pardeik |02-MAR-15| initialize l_dimm_ranks_array to zero +// | use const variables in for loops instead of numbers // 1.18 | pardeik |12-FEB-15| change ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP to // | a centaur target (was system) // 1.17 | pardeik |19-NOV-14| Use MRW attribute for SC address map for ISDIMMs @@ -160,6 +162,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target) const uint8_t I2C_BUS_ENCODE_PRIMARY = 0; const uint8_t I2C_BUS_ENCODE_SECONDARY = 8; const uint8_t MAX_NUM_DIMM_SENSORS = 8; + const uint8_t MAX_I2C_BUSSES = 2; // Variable declaration uint8_t l_dimm_ranks_array[l_NUM_MBAS][l_NUM_PORTS][l_NUM_DIMMS]; // Number of ranks for each configured DIMM in each MBA @@ -249,6 +252,19 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target) l_custom_dimm[i] = fapi::ENUM_ATTR_EFF_CUSTOM_DIMM_NO; } + // zero out the l_dimm_ranks_array so it is initialized for later use if there is a deconfigured MBA + for (uint8_t i = 0; i < l_NUM_MBAS; i++) + { + for (uint8_t j = 0; j < l_NUM_PORTS; j++) + { + for (uint8_t k = 0; k < l_NUM_DIMMS; k++) + { + l_dimm_ranks_array[i][j][k]=0; + } + } + + } + for (uint8_t mba_index = 0; mba_index < l_target_mba_array.size(); mba_index++){ l_rc = FAPI_ATTR_GET(ATTR_CHIP_UNIT_POS, &l_target_mba_array[mba_index], l_mba_pos); if (l_rc) return l_rc; @@ -399,9 +415,9 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target) l_cdimm_number_dimm_temp_sensors = 0; // cycle through both primary and secondary i2c busses, determine i2c address and enable bits - for (uint8_t k = 0; k < 2; k++) + for (uint8_t k = 0; k < MAX_I2C_BUSSES; k++) { - for (uint8_t i = 0; i < 8; i++) + for (uint8_t i = 0; i < MAX_NUM_DIMM_SENSORS; i++) { if (k == 0) { @@ -492,7 +508,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target) // Iterate through the num_ranks array to determine what DIMMs are plugged // Enable sensor monitoring for each plugged DIMM uint32_t l_iterator = 0; - for (uint32_t i = 0; i < 2; i++){ + for (uint32_t i = 0; i < l_NUM_MBAS; i++){ if (l_dimm_ranks_array[i][0][0] != 0){ l_ecmd_rc |= l_data_scac_enable.setBit(l_iterator); } |