diff options
author | Chris Cain <cjcain@us.ibm.com> | 2019-05-06 13:17:08 -0500 |
---|---|---|
committer | Christopher J. Cain <cjcain@us.ibm.com> | 2019-05-06 15:11:50 -0500 |
commit | 9a6d21e73e443693633187d023d7a8692fba9888 (patch) | |
tree | f5a6244cb33b059cceb1575f7e79be74a4f231b5 | |
parent | 4b9396843b2d2c950774413b74ab7eae5e5a5600 (diff) | |
download | talos-occ-9a6d21e73e443693633187d023d7a8692fba9888.tar.gz talos-occ-9a6d21e73e443693633187d023d7a8692fba9888.zip |
Initial OCMB fixes
Change-Id: Ifeb36e49bd95d29451a6e6e8a0a19a3d8a8c6568
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/76988
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com>
-rw-r--r-- | src/occ_405/cent/ocmb_control.c | 4 | ||||
-rwxr-xr-x | src/occ_405/cmdh/cmdh_fsp_cmds.c | 15 | ||||
-rwxr-xr-x | src/occ_405/main.c | 3 |
3 files changed, 15 insertions, 7 deletions
diff --git a/src/occ_405/cent/ocmb_control.c b/src/occ_405/cent/ocmb_control.c index 02be215..08acb7c 100644 --- a/src/occ_405/cent/ocmb_control.c +++ b/src/occ_405/cent/ocmb_control.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2018 */ +/* Contributors Listed Below - COPYRIGHT 2016,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -90,7 +90,7 @@ void ocmb_control_init( void ) /* @ * @errortype - * @moduleid CENTAUR_INIT_MOD + * @moduleid OCMB_INIT_MOD * @reasoncode SSX_GENERIC_FAILURE * @userdata1 l_rc_gpe - Return code of failing function * @userdata2 0 diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds.c b/src/occ_405/cmdh/cmdh_fsp_cmds.c index 152653c..493d7c5 100755 --- a/src/occ_405/cmdh/cmdh_fsp_cmds.c +++ b/src/occ_405/cmdh/cmdh_fsp_cmds.c @@ -323,7 +323,12 @@ ERRL_RC cmdh_poll_v20(cmdh_fsp_rsp_t * o_rsp_ptr) l_sensorHeader.count = 0; //Initialize to max number of possible temperature sensors. - l_max_sensors = MAX_NUM_CORES + MAX_NUM_MEM_CONTROLLERS + (MAX_NUM_MEM_CONTROLLERS * NUM_DIMMS_PER_CENTAUR) + (MAX_NUM_GPU_PER_DOMAIN * 2); + unsigned int max_dimms_per_membuf = NUM_DIMMS_PER_CENTAUR; + if (G_sysConfigData.mem_type == MEM_TYPE_OCM) + { + max_dimms_per_membuf = NUM_DIMMS_PER_OCMB; + } + l_max_sensors = MAX_NUM_CORES + MAX_NUM_MEM_CONTROLLERS + (MAX_NUM_MEM_CONTROLLERS * max_dimms_per_membuf) + (MAX_NUM_GPU_PER_DOMAIN * 2); l_max_sensors++; // +1 for VRM cmdh_poll_temp_sensor_t l_tempSensorList[l_max_sensors]; memset(l_tempSensorList, 0x00, sizeof(l_tempSensorList)); @@ -346,7 +351,7 @@ ERRL_RC cmdh_poll_v20(cmdh_fsp_rsp_t * o_rsp_ptr) { for (l_port=0; l_port < NUM_DIMM_PORTS; l_port++) { - for(l_dimm=0; l_dimm < NUM_DIMMS_PER_CENTAUR; l_dimm++) + for(l_dimm=0; l_dimm < max_dimms_per_membuf; l_dimm++) { if (g_amec->proc[0].memctl[l_port].centaur.dimm_temps[l_dimm].temp_sid != 0) { @@ -367,8 +372,10 @@ ERRL_RC cmdh_poll_v20(cmdh_fsp_rsp_t * o_rsp_ptr) } } } - else if (G_sysConfigData.mem_type == MEM_TYPE_CUMULUS) + else if ((G_sysConfigData.mem_type == MEM_TYPE_CUMULUS) || + (G_sysConfigData.mem_type == MEM_TYPE_OCM)) { + static bool l_traced_missing_sid = FALSE; for (l_cent=0; l_cent < MAX_NUM_MEM_CONTROLLERS; l_cent++) { @@ -390,7 +397,7 @@ ERRL_RC cmdh_poll_v20(cmdh_fsp_rsp_t * o_rsp_ptr) l_sensorHeader.count++; //Add entries for present dimms associated with current centaur l_cent. - for(l_dimm=0; l_dimm < NUM_DIMMS_PER_CENTAUR; l_dimm++) + for(l_dimm=0; l_dimm < max_dimms_per_membuf; l_dimm++) { l_temp_sid = g_amec->proc[0].memctl[l_cent].centaur.dimm_temps[l_dimm].temp_sid; diff --git a/src/occ_405/main.c b/src/occ_405/main.c index f0cb738..8ab0b93 100755 --- a/src/occ_405/main.c +++ b/src/occ_405/main.c @@ -1334,7 +1334,8 @@ void hmon_routine() (rtl_task_is_runnable(TASK_ID_DIMM_SM)) && (!SMGR_is_state_transitioning()) ) { // For Cumulus systems only, check for centaur timeout and overtemp errors - if (MEM_TYPE_CUMULUS == G_sysConfigData.mem_type) + if ((MEM_TYPE_CUMULUS == G_sysConfigData.mem_type) || + (MEM_TYPE_OCM == G_sysConfigData.mem_type)) { amec_health_check_cent_timeout(); amec_health_check_cent_temp(); |