summaryrefslogtreecommitdiffstats
path: root/src/usr/htmgt
diff options
context:
space:
mode:
authorSheldon Bailey <baileysh@us.ibm.com>2017-12-05 14:30:00 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-12-13 16:20:53 -0500
commit4809fbff915f920b9e0793e4604dfcc56b166507 (patch)
tree0520b03fe0c5ae4567532293f91dc11ddf8fec0a /src/usr/htmgt
parent4296f39725506f741ac4ceb8f3564c01dade7f2b (diff)
downloadtalos-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.C18
-rw-r--r--src/usr/htmgt/htmgt_cfgdata.C23
-rw-r--r--src/usr/htmgt/htmgt_cfgdata.H4
-rw-r--r--src/usr/htmgt/htmgt_utility.H2
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
OpenPOWER on IntegriCloud