From 9a6d21e73e443693633187d023d7a8692fba9888 Mon Sep 17 00:00:00 2001 From: Chris Cain Date: Mon, 6 May 2019 13:17:08 -0500 Subject: Initial OCMB fixes Change-Id: Ifeb36e49bd95d29451a6e6e8a0a19a3d8a8c6568 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/76988 Tested-by: FSP CI Jenkins Reviewed-by: Douglas R. Gilbert Reviewed-by: Martha Broyles Reviewed-by: Christopher J. Cain --- src/occ_405/cent/ocmb_control.c | 4 ++-- src/occ_405/cmdh/cmdh_fsp_cmds.c | 15 +++++++++++---- 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(); -- cgit v1.2.1