diff options
author | Richard J. Knight <rjknight@us.ibm.com> | 2015-03-11 19:19:09 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-04-02 17:37:45 -0500 |
commit | 248b81d8c291d59e1d864f5af24c9cc47bb51938 (patch) | |
tree | 3442a41290997d2eb70a6de188e970283fb54c6f /src/usr/ipmi | |
parent | 56ab0ee178b8277c4cc7e24e8535802821b4cba7 (diff) | |
download | talos-hostboot-248b81d8c291d59e1d864f5af24c9cc47bb51938.tar.gz talos-hostboot-248b81d8c291d59e1d864f5af24c9cc47bb51938.zip |
Update getFaultSensor to map all target types
-fix logic to return sensor for any target.
Change-Id: I3bb842d6a8708762ee6163420cdda382eb4fca72
RTC:125231
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16385
Tested-by: Jenkins Server
Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/ipmi')
-rw-r--r-- | src/usr/ipmi/ipmisensor.C | 70 |
1 files changed, 41 insertions, 29 deletions
diff --git a/src/usr/ipmi/ipmisensor.C b/src/usr/ipmi/ipmisensor.C index 4b5b47858..1b3ebbd43 100644 --- a/src/usr/ipmi/ipmisensor.C +++ b/src/usr/ipmi/ipmisensor.C @@ -35,6 +35,7 @@ #include <targeting/common/utilFilter.H> #include <ipmi/ipmi_reasoncodes.H> #include <endian.h> + extern trace_desc_t * g_trac_ipmi; namespace SENSOR @@ -1057,52 +1058,63 @@ namespace SENSOR switch( l_type ) { - case TARGETING::TYPE_PROC: - case TARGETING::TYPE_CORE: - case TARGETING::TYPE_DIMM: - case TARGETING::TYPE_MEMBUF: - { - l_sensor_number = StatusSensor(i_pTarget).getSensorNumber(); + case TARGETING::TYPE_SYS: + { + TRACDCOMP(g_trac_ipmi, "returning the \"System Event\" sensor\n"); + l_sensor_number = TARGETING::UTIL::getSensorNumber( + i_pTarget, + TARGETING::SENSOR_NAME_SYSTEM_EVENT ); + break; + } - break; - } + case TARGETING::TYPE_NODE: + { - case TARGETING::TYPE_OCC: - { - // should return the processor associated with this OCC - TARGETING::ConstTargetHandle_t proc = getParentChip( i_pTarget); + TRACDCOMP(g_trac_ipmi, "return backplane fault sensor\n"); + l_sensor_number = TARGETING::UTIL::getSensorNumber( + i_pTarget, + TARGETING::SENSOR_NAME_BACKPLANE_FAULT ); + break; + } - // we should get the processor as the parent here - assert(i_pTarget,"OCC target failed to return parent proc"); + case TARGETING::TYPE_DIMM: + case TARGETING::TYPE_MEMBUF: + case TARGETING::TYPE_PROC: + case TARGETING::TYPE_CORE: + { + l_sensor_number = + StatusSensor(i_pTarget).getSensorNumber(); + break; + } - l_sensor_number = getFaultSensorNumber( proc ); + case TARGETING::TYPE_EX: + { + // sensor number attribute is associated with the core + const TARGETING::Target * targ = getCoreChiplet(i_pTarget); - break; - } - default: - { - TARGETING::TargetHandle_t l_sys; + l_sensor_number = getFaultSensorNumber( targ ); - // get the "system error" sensor number associated with the - // system target. - TARGETING::targetService().getTopLevelTarget(l_sys); + break; + } - l_sensor_number = TARGETING::UTIL::getSensorNumber(l_sys, - TARGETING::SENSOR_NAME_SYSTEM_EVENT ); + default: + { - break; - } + TARGETING::ConstTargetHandle_t targ = + getParentChip( i_pTarget); + l_sensor_number = getFaultSensorNumber( targ ); + } } - TRACDCOMP(g_trac_ipmi,"<<getFaultSensorNumber() returning sensor number %d,"); + TRACDCOMP(g_trac_ipmi,"<<getFaultSensorNumber() returning sensor number %#x", l_sensor_number); return l_sensor_number; } // interface to retrieve the APSS channel sensor numbers. errlHndl_t getAPSSChannelSensorNumbers( - const uint16_t (* &o_sensor_numbers)[16]) + const uint16_t (* &o_sensor_numbers)[16]) { TARGETING::TargetHandle_t l_sys; |