diff options
author | Sheldon Bailey <baileysh@us.ibm.com> | 2017-12-05 14:30:00 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-12-13 16:20:53 -0500 |
commit | 4809fbff915f920b9e0793e4604dfcc56b166507 (patch) | |
tree | 0520b03fe0c5ae4567532293f91dc11ddf8fec0a /src/usr/htmgt | |
parent | 4296f39725506f741ac4ceb8f3564c01dade7f2b (diff) | |
download | talos-hostboot-4809fbff915f920b9e0793e4604dfcc56b166507.tar.gz talos-hostboot-4809fbff915f920b9e0793e4604dfcc56b166507.zip |
HTMGT: Updates for reporting throttle below nominal on Boston
Change-Id: Ie8ce3d93d23b06c0a1939a1f5cdcebfad88acc13
RTC:181699
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/50660
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com>
Reviewed-by: Martha Broyles <mbroyles@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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/htmgt')
-rw-r--r-- | src/usr/htmgt/htmgt.C | 18 | ||||
-rw-r--r-- | src/usr/htmgt/htmgt_cfgdata.C | 23 | ||||
-rw-r--r-- | src/usr/htmgt/htmgt_cfgdata.H | 4 | ||||
-rw-r--r-- | src/usr/htmgt/htmgt_utility.H | 2 |
4 files changed, 34 insertions, 13 deletions
diff --git a/src/usr/htmgt/htmgt.C b/src/usr/htmgt/htmgt.C index cf2190d07..462c38cce 100644 --- a/src/usr/htmgt/htmgt.C +++ b/src/usr/htmgt/htmgt.C @@ -652,12 +652,12 @@ namespace HTMGT //0 = disable OPAL mode (i.e. run as PowerVM) if (i_cmdData[1] == 0) { - G_opalMode = OCC_CFGDATA_OPENPOWER_POWERVM; + G_system_type = OCC_CFGDATA_OPENPOWER_POWERVM; } //1 = enable OPAL mode else if (i_cmdData[1] == 1) { - G_opalMode = OCC_CFGDATA_OPENPOWER_OPALVM; + G_system_type = OCC_CFGDATA_OPENPOWER_OPALVM; } else { @@ -669,26 +669,26 @@ namespace HTMGT * @moduleid HTMGT_MOD_PASS_THRU * @userdata1 command data[0-7] * @userdata2 command data length - * @devdesc Invalid pass thru command + * @devdesc Invalid pass thru command data */ failingSrc = HTMGT_RC_INVALID_PARAMETER; } if(failingSrc == HTMGT_RC_NO_ERROR) { - TMGT_INF("passThruCommand: OCC State set(0x%02X)" - " RESET-OCC ", G_opalMode ); + TMGT_INF("passThruCommand: OPAL State(0x%02X), " + "resetting PM Complex", G_system_type); err = OccManager::resetOccs(nullptr,true,true); if(err) { - TMGT_ERR("passThruCommand: OCC MODE change " - "Reset PM Complex FAIL with rc 0x%04X", - err->reasonCode()); + TMGT_ERR("passThruCommand: PM Complex Reset " + "failed with rc 0x%04X after updating " + "OPAL state", err->reasonCode()); } } } else { - TMGT_ERR("passThruCommand: invalid OCC State " + TMGT_ERR("passThruCommand: invalid OPAL State " "length %d", i_cmdLength); failingSrc = HTMGT_RC_INVALID_LENGTH; } diff --git a/src/usr/htmgt/htmgt_cfgdata.C b/src/usr/htmgt/htmgt_cfgdata.C index 457aee9dd..59c6c855e 100644 --- a/src/usr/htmgt/htmgt_cfgdata.C +++ b/src/usr/htmgt/htmgt_cfgdata.C @@ -44,7 +44,7 @@ namespace HTMGT { bool G_wofSupported = true; - uint8_t G_opalMode = OCC_CFGDATA_OPENPOWER_OPALVM; + uint8_t G_system_type = OCC_CFGDATA_OPENPOWER_OPALVM; // Send config format data to all OCCs void sendOccConfigData(const occCfgDataFormat i_requestedFormat) @@ -775,7 +775,24 @@ void getSystemConfigMessageData(const TargetHandle_t i_occ, uint8_t* o_data, o_data[index++] = OCC_CFGDATA_SYS_CONFIG_VERSION; //System Type - o_data[index++] = G_opalMode; + uint8_t l_throttle_below_nominal = 0; + if(!sys->tryGetAttr + <ATTR_REPORT_THROTTLE_BELOW_NOMINAL>(l_throttle_below_nominal)) + { + l_throttle_below_nominal = 0; // attr does not exist, disable + } + if (l_throttle_below_nominal == 1) + { + //1=OCC report throttling only when max frequency lowered below nominal + G_system_type |= OCC_REPORT_THROTTLE_BELOW_NOMINAL; + } + else + { + //0=OCC report throttling when max frequency lowered below turbo + G_system_type &= ~OCC_REPORT_THROTTLE_BELOW_NOMINAL; + } + o_data[index++] = G_system_type; + //processor Callout Sensor ID ConstTargetHandle_t proc = getParentChip(i_occ); @@ -791,7 +808,7 @@ void getSystemConfigMessageData(const TargetHandle_t i_occ, uint8_t* o_data, TMGT_INF("getSystemConfigMessageData: systemType: 0x%02X, " "procSensor: 0x%04X, %d cores, %d nodes", - G_opalMode, SensorID1, cores.size(), nodes.size()); + G_system_type, SensorID1, cores.size(), nodes.size()); for (uint64_t core=0; core<CFGDATA_CORES; core++) { diff --git a/src/usr/htmgt/htmgt_cfgdata.H b/src/usr/htmgt/htmgt_cfgdata.H index de950d44d..d5091257d 100644 --- a/src/usr/htmgt/htmgt_cfgdata.H +++ b/src/usr/htmgt/htmgt_cfgdata.H @@ -68,6 +68,10 @@ namespace HTMGT //PowerVM mode + single node OCC_CFGDATA_OPENPOWER_POWERVM = 0x01, + //Mask, report throttling only when max frequency lowered below nominal + OCC_REPORT_THROTTLE_BELOW_NOMINAL = 0x08, //Bit 3 + //else, OCC report throttling when max frequency lowered below turbo + CFGDATA_CORES = 24, CFGDATA_FRU_TYPE_PROC = 0x00, diff --git a/src/usr/htmgt/htmgt_utility.H b/src/usr/htmgt/htmgt_utility.H index 0ffc63e7f..3b4606c35 100644 --- a/src/usr/htmgt/htmgt_utility.H +++ b/src/usr/htmgt/htmgt_utility.H @@ -113,7 +113,7 @@ namespace HTMGT extern uint32_t G_debug_data; // Global to set OCC into OpalVM or PowerVM mode - extern uint8_t G_opalMode; //defined in htmgt_cfgdata.C + extern uint8_t G_system_type; //defined in htmgt_cfgdata.C enum debugTraceTypes |