Handle SSBThermTrip events on startup
Add support for SSBThermTrip to the error initialization so it
will be logged if the signal is asserted when the monitor starts.
Tested:
Verified that SSBThermtrip behaves the same as previously.
Change-Id: I713641b48659c82c21ba5d20050d7d8c27f6c120
Signed-off-by: Jason M. Bills <jason.m.bills@intel.com>
diff --git a/src/host_error_monitor.cpp b/src/host_error_monitor.cpp
index 1062fca..6f9ef0e 100644
--- a/src/host_error_monitor.cpp
+++ b/src/host_error_monitor.cpp
@@ -105,6 +105,13 @@
"REDFISH_MESSAGE_ARGS=%s", "SMI Timeout", NULL);
}
+static void ssbThermTripLog()
+{
+ sd_journal_send("MESSAGE=HostError: SSB thermal trip", "PRIORITY=%i",
+ LOG_INFO, "REDFISH_MESSAGE_ID=%s",
+ "OpenBMC.0.1.SsbThermalTrip", NULL);
+}
+
static void initializeErrorState();
static void initializeHostState()
{
@@ -615,11 +622,7 @@
gpioLineEvent.event_type == gpiod::line_event::FALLING_EDGE;
if (pchThermtrip)
{
- std::cout << "PCH Thermal trip detected \n";
- // log to redfish, call API
- sd_journal_send("MESSAGE=SsbThermalTrip: SSB Thermal trip",
- "PRIORITY=%i", LOG_INFO, "REDFISH_MESSAGE_ID=%s",
- "OpenBMC.0.1.SsbThermalTrip", NULL);
+ ssbThermTripLog();
}
}
pchThermtripEvent.async_wait(
@@ -860,6 +863,12 @@
{
smiAssertHandler();
}
+
+ // Handle PCH_BMC_THERMTRIP if it's asserted now
+ if (pchThermtripLine.get_value() == 0)
+ {
+ ssbThermTripLog();
+ }
}
} // namespace host_error_monitor