summaryrefslogtreecommitdiffstats
path: root/src/usr/ipmi
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/ipmi')
-rw-r--r--src/usr/ipmi/ipmisensor.C70
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;
OpenPOWER on IntegriCloud