blob: 9fec1aa86d77a7e0bda4d24a2a6887d46c50bd6e [file] [log] [blame]
From a1f98d850d356001d37242ccf13f94114bd6378c Mon Sep 17 00:00:00 2001
From: Artem Senichev <a.senichev@yadro.com>
Date: Tue, 13 Mar 2018 15:44:05 +0300
Subject: [PATCH] Fill empty sensor id to reserved id 0xFF
Hank Chang: This patch achieves the following goals:
a. Auto set all empty sensors with reserved ID - 0xFF instead of being 0x0 in
the mrw process (would cause some duplicate sensor@0 in skiboot)
b. In this way, they could simply save 128 empty DIMM_Temp* IDs to become
all 0xFF, and OCC would still report all the non-zero ID's DIMM_Temp*
reading in the poll response.
And then, apply another "occ-0001-Add-DIMM-temperature-sensors.patch"
can customize/override these 0xFF temp_sid again based on the different
CPU/Cen/DIMM index which can be decoded by OpenBMC accordingly.
c. Just simply prints the "N/A" (0xFF) string in the *.rpt file for reviewing
all the undefined/reserved sensor targets.
Originally created by MSI (S188)
Signed-off-by: Artem Senichev <a.senichev@yadro.com>
---
src/usr/ipmi/ipmisensor.C | 5 +----
src/usr/targeting/common/processMrw.pl | 21 ++++++++++++++++++---
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/src/usr/ipmi/ipmisensor.C b/src/usr/ipmi/ipmisensor.C
index 4aa1c9f4b..a5bded63a 100644
--- a/src/usr/ipmi/ipmisensor.C
+++ b/src/usr/ipmi/ipmisensor.C
@@ -216,14 +216,11 @@ namespace SENSOR
}
else
{
- TRACFCOMP(g_trac_ipmi,"We were not able to find a sensor number in"
+ TRACFCOMP(g_trac_ipmi,"Found a reserved sensor number (0xFF) in"
" the IPMI_SENSORS attribute for sensor_name=0x%x"
"for target with huid=0x%x, skipping call to "
"sendSetSensorReading()",
iv_name, TARGETING::get_huid( iv_target ));
-
- assert(false);
-
}
return l_err;
diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
index 8bfa7bddd..45d250872 100644
--- a/src/usr/targeting/common/processMrw.pl
+++ b/src/usr/targeting/common/processMrw.pl
@@ -239,14 +239,29 @@ sub processIpmiSensors {
$sensor_name=$name."_".$name_suffix;
}
my $attribute_name="";
- my $s=sprintf("0x%02X%02X,0x%02X",
- oct($sensor_type),oct($entity_id),oct($sensor_id));
- push(@sensors,$s);
+
+ if ($sensor_id ne "")
+ {
+ my $s = sprintf("0x%02X%02X,0x%02X",
+ oct($sensor_type), oct($entity_id), oct($sensor_id));
+ push(@sensors, $s);
+ }
+ else
+ {
+ my $s = sprintf("0x%02X%02X,0xFF",
+ oct($sensor_type), oct($entity_id));
+ push(@sensors, $s);
+ }
+
my $sensor_id_str = "";
if ($sensor_id ne "")
{
$sensor_id_str = sprintf("0x%02X",oct($sensor_id));
}
+ else
+ {
+ $sensor_id_str = sprintf("N/A");
+ }
my $str=sprintf(
" %30s | %10s | 0x%02X | 0x%02X | 0x%02x |" .
" %4s | %4d | %4d | %10s | %s\n",
--
2.14.1