summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/dram_initialization
diff options
context:
space:
mode:
authorRichard J. Knight <rjknight@us.ibm.com>2014-12-12 10:46:26 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-01-30 09:37:52 -0600
commite7dd491766237e728331d51064ddf7382c23c404 (patch)
tree67a69a8abf5ee73e3f91a4428a23574f8fdc6b8d /src/usr/hwpf/hwp/dram_initialization
parent37f68a01d02d98f995ab3f46035f1db42ac75576 (diff)
downloadblackbird-hostboot-e7dd491766237e728331d51064ddf7382c23c404.tar.gz
blackbird-hostboot-e7dd491766237e728331d51064ddf7382c23c404.zip
SW287733: HWP mss_thermal_init.C update to configure non-custom DIMM sensor cach
Change-Id: I3abd33412e2a29192a83b897f0f1d9783e6188f9 CQ:SW287733 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14888 Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Richard J. Knight <rjknight@us.ibm.com> Tested-by: Richard J. Knight <rjknight@us.ibm.com> Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/15296 Tested-by: Jenkins Server 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.C30
1 files changed, 23 insertions, 7 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 c295d0f12..aa217c637 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
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2015 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -22,7 +22,7 @@
/* permissions and limitations under the License. */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: mss_thermal_init.C,v 1.15 2014/02/26 21:19:10 pardeik Exp $
+// $Id: mss_thermal_init.C,v 1.18 2015/01/23 17:54:09 dcrowell 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.17 | pardeik |19-NOV-14| Use MRW attribute for SC address map for ISDIMMs
+// 1.16 | pardeik |06-FEB-14| removed string in trace statement
// 1.15 | pardeik |24-FEB-14| added support for ATTR_MRW_CDIMM_SPARE_I2C_TEMP_SENSOR_ENABLE
// 1.14 | pardeik |12-FEB-14| changed CONFIG_INTERVAL_TIMER from 5 to 15 to
// 1.13 | pardeik |30-JAN-14| workaround for SW243504 (enable sensors on master
@@ -120,8 +122,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
fapi::ReturnCode l_rc;
uint32_t l_ecmd_rc = 0;
- const char *procedure_name = "mss_thermal_init";
- FAPI_INF("*** Running %s ***", procedure_name);
+ FAPI_INF("*** Running mss_thermal_init ***");
// Constant declaration
const uint8_t l_NUM_MBAS = 2; // Number of MBAs per Centaur
@@ -150,7 +151,6 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
const uint32_t I2C_SETUP_LOWER_HALF = 0x05000000;
const uint32_t ACT_MASK_UPPER_HALF = 0x00018000;
const uint32_t ACT_MASK_LOWER_HALF = 0x00000000;
- const uint32_t SENSOR_ADDR_MAP_ISDIMM = 0x01234567;
// OCC polls cacheline every 2 ms (could vary from this, as seen on scope)
// For I2C bus at 50kHz (9.6 ms max to read 8 sensors), use interval of 15 for margin and to prevent stall errors when 8 sensors are enabled to be read
const uint32_t CONFIG_INTERVAL_TIMER = 15;
@@ -176,6 +176,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
uint8_t l_sensor_map_mask;
uint8_t l_master_i2c_temp_sensor_enable;
uint8_t l_spare_i2c_temp_sensor_enable;
+ uint32_t l_dimm_sensor_cache_addr_map = 0;
//********************************************
// Centaur internal temperature polling setup
@@ -237,6 +238,15 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
l_rc = fapiGetChildChiplets(i_target, fapi::TARGET_TYPE_MBA_CHIPLET, l_target_mba_array);
if (l_rc) return l_rc;
+ // need to clear out the array since it could be sparsely filled
+ // in the ISDIMM case
+ for( size_t i = 0;
+ i < (sizeof(l_custom_dimm)/sizeof(l_custom_dimm[0]));
+ i++ )
+ {
+ l_custom_dimm[i] = fapi::ENUM_ATTR_EFF_CUSTOM_DIMM_NO;
+ }
+
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;
@@ -264,6 +274,12 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
l_rc = FAPI_ATTR_GET(ATTR_MRW_CDIMM_SPARE_I2C_TEMP_SENSOR_ENABLE, NULL, l_spare_i2c_temp_sensor_enable);
if (l_rc) return l_rc;
}
+ else
+ {
+ // sensor cache address map for non custom dimm temperature sensors (which i2c bus and i2c address they are)
+ l_rc = FAPI_ATTR_GET(ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP, NULL, l_dimm_sensor_cache_addr_map);
+ if (l_rc) return l_rc;
+ }
// Configure Centaur Thermal Cache
@@ -492,7 +508,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
}
l_iterator++;
}
- l_ecmd_rc |= l_data_scac_addrmap.insert(SENSOR_ADDR_MAP_ISDIMM, 0, 32, 0);
+ l_ecmd_rc |= l_data_scac_addrmap.insert(l_dimm_sensor_cache_addr_map, 0, 32, 0);
if(l_ecmd_rc) {
l_rc.setEcmdError(l_ecmd_rc);
return l_rc;
@@ -619,7 +635,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
}
}
- FAPI_INF("*** %s COMPLETE ***", procedure_name);
+ FAPI_INF("*** mss_thermal_init COMPLETE ***");
return l_rc;
} //end mss_thermal_init
OpenPOWER on IntegriCloud