diff options
| author | Matt Derksen <mderkse1@us.ibm.com> | 2017-08-15 16:44:36 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-09-01 09:38:11 -0400 |
| commit | 3d4caf24f7e90f183f93cbcb915470f7205bb7f4 (patch) | |
| tree | 2dfba534dc100960f8d4a40d9fbbfef9ff832b61 /src/usr/errl/errlentry.C | |
| parent | 7b2191a74ffc3b431c9ddb6c75b0fefc7f20d133 (diff) | |
| download | talos-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.C | 49 |
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 { |

