diff options
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors/0016-Ignore-VR-sensor-readings-if-content-is-0xFF.patch')
-rw-r--r-- | meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors/0016-Ignore-VR-sensor-readings-if-content-is-0xFF.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors/0016-Ignore-VR-sensor-readings-if-content-is-0xFF.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors/0016-Ignore-VR-sensor-readings-if-content-is-0xFF.patch new file mode 100644 index 000000000..b7141513b --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors/0016-Ignore-VR-sensor-readings-if-content-is-0xFF.patch @@ -0,0 +1,44 @@ +From d8583d8b347b2f4c3d6e84f333df4cd137085189 Mon Sep 17 00:00:00 2001 +From: Jayaprakash Mutyala <mutyalax.jayaprakash@intel.com> +Date: Mon, 4 Jul 2022 16:03:35 +0000 +Subject: [PATCH] Ignore VR sensor readings if content is 0xFF + +As per NM 6.0 specification SPS FW will return 0xFF in certain +erroneous condition with error code stating transaction successful. +BMC need to ignore such readings. + +Tested: +Verified by monitoring more than 1 hour, ignored VR sensor readings when +content is 0xFF. + +Signed-off-by: Vikash Chandola vikash.chandola@intel.com +Signed-off-by: Jayaprakash Mutyala <mutyalax.jayaprakash@intel.com> +--- + src/IpmbSensor.cpp | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/src/IpmbSensor.cpp b/src/IpmbSensor.cpp +index 2cb2495..a41209d 100644 +--- a/src/IpmbSensor.cpp ++++ b/src/IpmbSensor.cpp +@@ -321,7 +321,16 @@ void IpmbSensor::checkThresholds(void) + + bool IpmbSensor::processReading(const std::vector<uint8_t>& data, double& resp) + { +- ++ if (isReadMe && data.size() >= 5) ++ { ++ // This is VR sensor. Mark failure if byte at index 3 and 4 are 0xFF ++ if (data[3] == 0xFF && data[4] == 0xFF) ++ { ++ std::cerr << name << " value is 0xFFFF. Marking error\n"; ++ markFunctional(false); ++ return false; ++ } ++ } + switch (readingFormat) + { + case (ReadingFormat::byte0): +-- +2.17.1 + |