summaryrefslogtreecommitdiff
path: root/meta-quanta/meta-gbs/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-quanta/meta-gbs/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch')
-rw-r--r--meta-quanta/meta-gbs/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch138
1 files changed, 0 insertions, 138 deletions
diff --git a/meta-quanta/meta-gbs/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch b/meta-quanta/meta-gbs/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch
deleted file mode 100644
index d815cde72..000000000
--- a/meta-quanta/meta-gbs/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 9deb72959477700216326c033c930236e58f965f Mon Sep 17 00:00:00 2001
-From: Ren Yu <yux.ren@intel.com>
-Date: Tue, 28 May 2019 17:11:17 +0800
-Subject: [PATCH] Save the pre-timeout interrupt in dbus property
-
-Get the watchdog pre-timeout interrupt value from ipmi watchdog set command,
-and store it into dbus property.
-
-Tested:
-Config IPMI watchdog: BIOS FRB2 Power Cycle after 1 seconds:
-ipmitool raw 0x06 0x24 0x01 0x13 0x0 0x2 0xa 0x00
-Start watchdog:
-Ipmitool mc watchdog reset
-Check the watchdog pre-timeout interrupt in below:
-https://BMCIP/redfish/v1/Systems/system/LogServices/EventLog/Entries
-
-Signed-off-by: Ren Yu <yux.ren@intel.com>
-
----
- app/watchdog.cpp | 47 ++++++++++++++++++++++++++++++++++++++++
- app/watchdog_service.cpp | 6 +++++
- app/watchdog_service.hpp | 9 ++++++++
- 3 files changed, 62 insertions(+)
-
-diff --git a/app/watchdog.cpp b/app/watchdog.cpp
-index 03c373e..cb0b1fd 100644
---- a/app/watchdog.cpp
-+++ b/app/watchdog.cpp
-@@ -80,6 +80,7 @@ ipmi::RspType<> ipmiAppResetWatchdogTimer()
-
- static constexpr uint8_t wd_dont_stop = 0x1 << 6;
- static constexpr uint8_t wd_timeout_action_mask = 0x3;
-+static constexpr uint8_t wdPreTimeoutInterruptMask = 0x3;
-
- static constexpr uint8_t wdTimerUseResTimer1 = 0x0;
- static constexpr uint8_t wdTimerUseResTimer2 = 0x6;
-@@ -127,6 +128,45 @@ WatchdogService::Action ipmiActionToWdAction(IpmiAction ipmi_action)
- }
- }
-
-+enum class IpmiPreTimeoutInterrupt : uint8_t
-+{
-+ None = 0x0,
-+ SMI = 0x1,
-+ NMI = 0x2,
-+ MI = 0x3,
-+};
-+/** @brief Converts an IPMI Watchdog PreTimeoutInterrupt to DBUS defined action
-+ * @param[in] ipmi_action The IPMI Watchdog PreTimeoutInterrupt
-+ * @return The Watchdog PreTimeoutInterrupt that the ipmi_action maps to
-+ */
-+WatchdogService::PreTimeoutInterruptAction ipmiPreTimeoutInterruptToWdAction(
-+ IpmiPreTimeoutInterrupt ipmiPreTimeOutInterrupt)
-+{
-+ switch (ipmiPreTimeOutInterrupt)
-+ {
-+ case IpmiPreTimeoutInterrupt::None:
-+ {
-+ return WatchdogService::PreTimeoutInterruptAction::None;
-+ }
-+ case IpmiPreTimeoutInterrupt::SMI:
-+ {
-+ return WatchdogService::PreTimeoutInterruptAction::SMI;
-+ }
-+ case IpmiPreTimeoutInterrupt::NMI:
-+ {
-+ return WatchdogService::PreTimeoutInterruptAction::NMI;
-+ }
-+ case IpmiPreTimeoutInterrupt::MI:
-+ {
-+ return WatchdogService::PreTimeoutInterruptAction::MI;
-+ }
-+ default:
-+ {
-+ throw std::domain_error("IPMI PreTimeoutInterrupt is invalid");
-+ }
-+ }
-+}
-+
- enum class IpmiTimerUse : uint8_t
- {
- Reserved = 0x0,
-@@ -250,6 +290,13 @@ ipmi::RspType<>
- // Mark as initialized so that future resets behave correctly
- wd_service.setInitialized(true);
-
-+ // pretimeOutAction
-+ const auto ipmiPreTimeoutInterrupt =
-+ static_cast<IpmiPreTimeoutInterrupt>(wdPreTimeoutInterruptMask &
-+ (static_cast<uint8_t>(preTimeoutInterrupt)));
-+ wd_service.setPreTimeoutInterrupt(
-+ ipmiPreTimeoutInterruptToWdAction(ipmiPreTimeoutInterrupt));
-+
- lastCallSuccessful = true;
- return ipmi::responseSuccess();
- }
-diff --git a/app/watchdog_service.cpp b/app/watchdog_service.cpp
-index 3534e89..4df1ab6 100644
---- a/app/watchdog_service.cpp
-+++ b/app/watchdog_service.cpp
-@@ -198,3 +198,9 @@ void WatchdogService::setInterval(uint64_t interval)
- {
- setProperty("Interval", interval);
- }
-+
-+void WatchdogService::setPreTimeoutInterrupt(
-+ PreTimeoutInterruptAction preTimeoutInterrupt)
-+{
-+ setProperty("PreTimeoutInterrupt", convertForMessage(preTimeoutInterrupt));
-+}
-\ No newline at end of file
-diff --git a/app/watchdog_service.hpp b/app/watchdog_service.hpp
-index 141bdb7..32b7461 100644
---- a/app/watchdog_service.hpp
-+++ b/app/watchdog_service.hpp
-@@ -15,6 +15,8 @@ class WatchdogService
-
- using Action =
- sdbusplus::xyz::openbmc_project::State::server::Watchdog::Action;
-+ using PreTimeoutInterruptAction = sdbusplus::xyz::openbmc_project::State::
-+ server::Watchdog::PreTimeoutInterruptAction;
- using TimerUse =
- sdbusplus::xyz::openbmc_project::State::server::Watchdog::TimerUse;
-
-@@ -92,6 +94,13 @@ class WatchdogService
- */
- void setInterval(uint64_t interval);
-
-+ /** @brief Sets the value of the PreTimeoutInterrupt property on the host
-+ * watchdog
-+ *
-+ * @param[in] PreTimeoutInterrupt - The new PreTimeoutInterrupt value
-+ */
-+ void setPreTimeoutInterrupt(PreTimeoutInterruptAction preTimeoutInterrupt);
-+
- private:
- /** @brief sdbusplus handle */
- sdbusplus::bus::bus bus;