summaryrefslogtreecommitdiffstats
path: root/src/usr/errl/errlentry.C
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2017-08-15 16:44:36 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-09-01 09:38:11 -0400
commit3d4caf24f7e90f183f93cbcb915470f7205bb7f4 (patch)
tree2dfba534dc100960f8d4a40d9fbbfef9ff832b61 /src/usr/errl/errlentry.C
parent7b2191a74ffc3b431c9ddb6c75b0fefc7f20d133 (diff)
downloadtalos-hostboot-3d4caf24f7e90f183f93cbcb915470f7205bb7f4.tar.gz
talos-hostboot-3d4caf24f7e90f183f93cbcb915470f7205bb7f4.zip
Added Error log support for new GPU sensors
Change-Id: I8a0de390516fd02df07860b960db506899b13f14 RTC:178218 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45116 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/errl/errlentry.C')
-rw-r--r--src/usr/errl/errlentry.C49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/usr/errl/errlentry.C b/src/usr/errl/errlentry.C
index 251b24b6c..1ebbb2671 100644
--- a/src/usr/errl/errlentry.C
+++ b/src/usr/errl/errlentry.C
@@ -320,6 +320,17 @@ void ErrlEntry::addClockCallout(const TARGETING::Target *i_target,
} // addClockCallout
+
+void ErrlEntry::addSensorCallout(const uint32_t i_sensorID,
+ const HWAS::sensorTypeEnum i_sensorType,
+ const HWAS::callOutPriority i_priority)
+{
+ TRACFCOMP(g_trac_errl, ENTER_MRK"addSensorCallout(0x%X, %d, 0x%x)",
+ i_sensorID, i_sensorType, i_priority);
+
+ ErrlUserDetailsCallout(i_sensorID, i_sensorType, i_priority).addToLog(this);
+}
+
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
void ErrlEntry::addPartCallout(const TARGETING::Target *i_target,
@@ -947,6 +958,13 @@ void ErrlEntry::setSubSystemIdBasedOnCallouts()
"callout to determine SSID", pData->partType);
iv_User.setSubSys(getSubSystem(pData->partType));
}
+ else if ( pData->type == HWAS::SENSOR_CALLOUT )
+ {
+ TRACFCOMP(g_trac_errl, INFO_MRK
+ "mapping highest priority sensor type 0x%x "
+ "callout to determine SSID", pData->sensorType);
+ iv_User.setSubSys(getSubSystem(pData->sensorType));
+ }
else
{
TRACFCOMP(g_trac_errl, ERR_MRK
@@ -1154,6 +1172,37 @@ epubSubSystem_t ErrlEntry::getSubSystem( HWAS::clockTypeEnum i_clockType ) const
}
///////////////////////////////////////////////////////////////////////////////
+// Map a Sensor type to a subsystem ID
+epubSubSystem_t ErrlEntry::getSubSystem(HWAS::sensorTypeEnum i_sensorType) const
+{
+ TRACDCOMP(g_trac_errl, ENTER_MRK"getSubSystem() from sensor type 0x%x",
+ i_sensorType);
+
+ epubSubSystem_t subsystem = EPUB_MISC_UNKNOWN;
+
+ const uint32_t SENSOR_TO_SUBSYS_TABLE_ENTRIES =
+ sizeof(SENSOR_TO_SUBSYS_TABLE)/sizeof(SENSOR_TO_SUBSYS_TABLE[0]);
+
+ for (uint32_t i = 0; i < SENSOR_TO_SUBSYS_TABLE_ENTRIES; i++)
+ {
+ if (SENSOR_TO_SUBSYS_TABLE[i].xType == i_sensorType)
+ {
+ subsystem = SENSOR_TO_SUBSYS_TABLE[i].xSubSys;
+ break;
+ }
+ }
+
+ if(subsystem == EPUB_MISC_UNKNOWN)
+ {
+ TRACFCOMP(g_trac_errl,"WRN>> Failed to find subsystem ID for sensor type 0x%x",
+ i_sensorType);
+ }
+
+ TRACDCOMP(g_trac_errl, EXIT_MRK"getSubSystem() ssid 0x%x", subsystem);
+ return subsystem;
+}
+
+///////////////////////////////////////////////////////////////////////////////
// Map a Part type to a subsystem ID
epubSubSystem_t ErrlEntry::getSubSystem( HWAS::partTypeEnum i_partType ) const
{
OpenPOWER on IntegriCloud