summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-phosphor/state
diff options
context:
space:
mode:
authorEd Tanous <ed.tanous@intel.com>2019-07-31 20:43:37 +0300
committerEd Tanous <ed.tanous@intel.com>2019-08-01 18:19:38 +0300
commitd0f63ef62c76c932a2003eaa42c0b250065ae06f (patch)
tree4c0e3cb32dc80f80460bdbf82ff6d401d4ff194f /meta-openbmc-mods/meta-common/recipes-phosphor/state
parentb4f66bacb1b8e661d794fa7a189e2f66f5092e2e (diff)
downloadopenbmc-d0f63ef62c76c932a2003eaa42c0b250065ae06f.tar.xz
Update to internal 7-31-19
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-phosphor/state')
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0001-Modify-dbus-interface-for-power-control.patch38
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0002-Capture-host-restart-cause.patch338
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0003-Use-warm-reboot-for-the-Reboot-host-state-transition.patch71
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0004-Add-Power-Restore-delay-support.patch141
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reboot-host@.service18
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reset-host-check@.service19
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reset-host-reboot-attempts@.service14
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager_%.bbappend10
8 files changed, 0 insertions, 649 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0001-Modify-dbus-interface-for-power-control.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0001-Modify-dbus-interface-for-power-control.patch
deleted file mode 100644
index fac9b52f1..000000000
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0001-Modify-dbus-interface-for-power-control.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From d34a2a5f6ca0564275ed0e2664624525cad64585 Mon Sep 17 00:00:00 2001
-From: Yong Li <yong.b.li@linux.intel.com>
-Date: Fri, 13 Jul 2018 09:08:52 +0800
-Subject: [PATCH] Modify dbus interface for power control
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Switch power control service namespace from “org” to “xyz”,
-to compatible with new intel-chassis services
-
-Change-Id: I1bf5e218f72eb9fd4fb6f203c35479818d12b1fa
-Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
----
- chassis_state_manager.cpp | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/chassis_state_manager.cpp b/chassis_state_manager.cpp
-index 03dd176..05e2440 100644
---- a/chassis_state_manager.cpp
-+++ b/chassis_state_manager.cpp
-@@ -63,10 +63,11 @@ void Chassis::determineInitialState()
- {
- sdbusplus::message::variant<int> pgood = -1;
- auto method = this->bus.new_method_call(
-- "org.openbmc.control.Power", "/org/openbmc/control/power0",
-+ "xyz.openbmc_project.Chassis.Control.Power",
-+ "/xyz/openbmc_project/Chassis/Control/Power0",
- "org.freedesktop.DBus.Properties", "Get");
-
-- method.append("org.openbmc.control.Power", "pgood");
-+ method.append("xyz.openbmc_project.Chassis.Control.Power", "pgood");
- try
- {
- auto reply = this->bus.call(method);
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0002-Capture-host-restart-cause.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0002-Capture-host-restart-cause.patch
deleted file mode 100644
index 2adff372e..000000000
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0002-Capture-host-restart-cause.patch
+++ /dev/null
@@ -1,338 +0,0 @@
-From ed64fe7379a259a822aca69e70426a2b07aad25d Mon Sep 17 00:00:00 2001
-From: Kuiying Wang <kuiying.wang@intel.com>
-Date: Tue, 7 Aug 2018 16:43:00 +0800
-Subject: [PATCH] Capture host restart cause
-
-Capture host restart cause on power/reset button pressed,
-ipmi command/webui, host OS reboot(Ctrl-Alt-Del),
-and power restore policy settings.
-Save the restart cause into file system,
-and restore it when BMC boot up.
-
-Signed-off-by: Kuiying Wang <kuiying.wang@intel.com>
-Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
----
- configure.ac | 4 +-
- discover_system_state.cpp | 14 +++++
- host_state_manager.cpp | 17 ++++++
- host_state_manager.hpp | 148 +++++++++++++++++++++++++++++++++++++++++++++-
- 4 files changed, 178 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 7919ec5..051a0c0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -52,9 +52,9 @@ AC_ARG_VAR(HOST_RUNNING_FILE, [File to create if host is running])
- AS_IF([test "x$HOST_RUNNING_FILE" == "x"], [HOST_RUNNING_FILE="/run/openbmc/host@%u-on"])
- AC_DEFINE_UNQUOTED([HOST_RUNNING_FILE], ["$HOST_RUNNING_FILE"], [File to create if host is running])
-
--AC_ARG_VAR(HOST_STATE_PERSIST_PATH, [Path of file for storing requested host state.])
-+AC_ARG_VAR(HOST_STATE_PERSIST_PATH, [Path of file for storing host state.])
- AS_IF([test "x$HOST_STATE_PERSIST_PATH" == "x"], \
-- [HOST_STATE_PERSIST_PATH="/var/lib/phosphor-state-manager/requestedHostTransition"])
-+ [HOST_STATE_PERSIST_PATH="/var/lib/phosphor-state-manager/hostState"])
- AC_DEFINE_UNQUOTED([HOST_STATE_PERSIST_PATH], ["$HOST_STATE_PERSIST_PATH"], \
- [Path of file for storing requested host state.])
-
-diff --git a/discover_system_state.cpp b/discover_system_state.cpp
-index 3a38152..0b5798a 100644
---- a/discover_system_state.cpp
-+++ b/discover_system_state.cpp
-@@ -12,6 +12,7 @@
- #include "settings.hpp"
- #include "xyz/openbmc_project/Common/error.hpp"
- #include "xyz/openbmc_project/Control/Power/RestorePolicy/server.hpp"
-+#include <xyz/openbmc_project/State/Host/server.hpp>
-
- namespace phosphor
- {
-@@ -181,6 +182,10 @@ int main(int argc, char** argv)
- log<level::INFO>("power_policy=ALWAYS_POWER_ON, powering host on");
- setProperty(bus, hostPath, HOST_BUSNAME, "RequestedHostTransition",
- convertForMessage(server::Host::Transition::On));
-+
-+ setProperty(
-+ bus, hostPath, HOST_BUSNAME, "HostRestartCause",
-+ convertForMessage(server::Host::RestartCause::PowerPolicyAlwaysOn));
- }
- else if (RestorePolicy::Policy::Restore ==
- RestorePolicy::convertPolicyFromString(powerPolicy))
-@@ -192,6 +197,15 @@ int main(int argc, char** argv)
- getProperty(bus, hostPath, HOST_BUSNAME, "RequestedHostTransition");
- setProperty(bus, hostPath, HOST_BUSNAME, "RequestedHostTransition",
- hostReqState);
-+
-+ if (server::Host::convertTransitionFromString(hostReqState) ==
-+ server::Host::Transition::On)
-+ {
-+ setProperty(
-+ bus, hostPath, HOST_BUSNAME, "HostRestartCause",
-+ convertForMessage(
-+ server::Host::RestartCause::PowerPolicyPreviousState));
-+ }
- }
-
- return 0;
-diff --git a/host_state_manager.cpp b/host_state_manager.cpp
-index 7d661dd..0e00e78 100644
---- a/host_state_manager.cpp
-+++ b/host_state_manager.cpp
-@@ -308,6 +308,15 @@ bool Host::deserialize(const fs::path& path)
- }
- }
-
-+void Host::restoreHostRestartCause()
-+{
-+ if (!deserialize(HOST_STATE_PERSIST_PATH))
-+ {
-+ // set to default value
-+ server::Host::hostRestartCause(server::Host::RestartCause::Unknown);
-+ }
-+}
-+
- Host::Transition Host::requestedHostTransition(Transition value)
- {
- log<level::INFO>("Host State transaction request",
-@@ -321,6 +330,7 @@ Host::Transition Host::requestedHostTransition(Transition value)
- // check of this count will occur
- if (value != server::Host::Transition::Off)
- {
-+ hostRestartCause(RestartCause::IpmiCommand);
- decrementRebootCount();
- }
-
-@@ -353,6 +363,13 @@ Host::HostState Host::currentHostState(HostState value)
- return server::Host::currentHostState(value);
- }
-
-+Host::RestartCause Host::hostRestartCause(RestartCause value)
-+{
-+ auto retVal = server::Host::hostRestartCause(value);
-+ serialize();
-+ return retVal;
-+}
-+
- } // namespace manager
- } // namespace state
- } // namespace phosphor
-diff --git a/host_state_manager.hpp b/host_state_manager.hpp
-index 2b00777..afd8aa3 100644
---- a/host_state_manager.hpp
-+++ b/host_state_manager.hpp
-@@ -32,6 +32,22 @@ using namespace phosphor::logging;
- namespace sdbusRule = sdbusplus::bus::match::rules;
- namespace fs = std::experimental::filesystem;
-
-+const static constexpr char* powerButtonPath =
-+ "/xyz/openbmc_project/Chassis/Buttons/Power0";
-+const static constexpr char* powerButtonIntf =
-+ "xyz.openbmc_project.Chassis.Buttons.Power";
-+const static constexpr char* resetButtonPath =
-+ "/xyz/openbmc_project/Chassis/Buttons/Reset0";
-+const static constexpr char* resetButtonIntf =
-+ "xyz.openbmc_project.Chassis.Buttons.Reset";
-+
-+const static constexpr char* powerControlService =
-+ "xyz.openbmc_project.Chassis.Control.Power";
-+const static constexpr char* powerControlPath =
-+ "/xyz/openbmc_project/Chassis/Control/Power0";
-+const static constexpr char* powerControlInterface =
-+ "xyz.openbmc_project.Chassis.Control.Power";
-+
- /** @class Host
- * @brief OpenBMC host state management implementation.
- * @details A concrete implementation for xyz.openbmc_project.State.Host
-@@ -59,8 +75,93 @@ class Host : public HostInherit
- sdbusRule::interface("org.freedesktop.systemd1.Manager"),
- std::bind(std::mem_fn(&Host::sysStateChange), this,
- std::placeholders::_1)),
-- settings(bus)
-+ settings(bus),
-+ powerButtonPressedSignal(
-+ bus,
-+ sdbusRule::type::signal() + sdbusRule::member("Pressed") +
-+ sdbusRule::path(powerButtonPath) +
-+ sdbusRule::interface(powerButtonIntf),
-+ [this](sdbusplus::message::message& msg) {
-+ phosphor::logging::log<phosphor::logging::level::INFO>(
-+ "powerButtonPressedSignal callback function is called...");
-+ this->hostRestartCause(this->RestartCause::PowerButton);
-+ this->powerButtonPressed = true;
-+ return;
-+ }),
-+ resetButtonPressedSignal(
-+ bus,
-+ sdbusRule::type::signal() + sdbusRule::member("Pressed") +
-+ sdbusRule::path(resetButtonPath) +
-+ sdbusRule::interface(resetButtonIntf),
-+ [this](sdbusplus::message::message& msg) {
-+ phosphor::logging::log<phosphor::logging::level::INFO>(
-+ "resetButtonPressedSignal callback function is called...");
-+ this->hostRestartCause(this->RestartCause::ResetButton);
-+ this->resetButtonPressed = true;
-+ return;
-+ }),
-+ postCompletePropSignal(
-+ bus,
-+ sdbusplus::bus::match::rules::propertiesChanged(
-+ powerControlPath, powerControlInterface),
-+ [this](sdbusplus::message::message& msg) {
-+ phosphor::logging::log<phosphor::logging::level::INFO>(
-+ "postCompletePropSignal callback function is called...");
-+
-+ using DbusVariant = sdbusplus::message::variant<
-+ std::string, bool, uint8_t, uint16_t, int16_t, uint32_t,
-+ int32_t, uint64_t, int64_t, double>;
-+
-+ std::map<std::string, DbusVariant> props;
-+ std::vector<std::string> inval;
-+ std::string iface;
-+ msg.read(iface, props, inval);
-+
-+ for (const auto& t : props)
-+ {
-+ auto key = t.first;
-+ auto value = t.second;
-+
-+ if (key == "state")
-+ {
-+ this->powerStateChanged = true;
-+ }
-+
-+ else if (key == "pgood")
-+ {
-+ this->pgood =
-+ sdbusplus::message::variant_ns::get<int32_t>(value);
-+ }
-+
-+ else if (key == "post_complete")
-+ {
-+ bool postState =
-+ sdbusplus::message::variant_ns::get<bool>(value);
-+
-+ if (!postState && this->pgood)
-+ {
-+ if (!this->resetButtonPressed &&
-+ !this->powerButtonPressed &&
-+ !this->powerStateChanged)
-+ {
-+ phosphor::logging::log<
-+ phosphor::logging::level::INFO>(
-+ "OEM Reset");
-+ this->hostRestartCause(this->RestartCause::OEM);
-+ }
-+ this->powerButtonPressed = false;
-+ this->powerStateChanged = false;
-+ this->resetButtonPressed = false;
-+ }
-+ }
-+ }
-+ })
- {
-+ powerButtonPressed = false;
-+ powerStateChanged = false;
-+ resetButtonPressed = false;
-+ pgood = 0;
-+
- // Enable systemd signals
- subscribeToSystemdSignals();
-
-@@ -69,8 +170,29 @@ class Host : public HostInherit
-
- attemptsLeft(BOOT_COUNT_MAX_ALLOWED);
-
-+ restoreHostRestartCause(); // restore host restart cause from persisted
-+ // file
-+
- // We deferred this until we could get our property correct
- this->emit_object_added();
-+ sdbusplus::message::variant<int32_t> pgoodProp = -1;
-+ auto method =
-+ this->bus.new_method_call(powerControlService, powerControlPath,
-+ "org.freedesktop.DBus.Properties", "Get");
-+
-+ method.append(powerControlInterface, "pgood");
-+ try
-+ {
-+ auto reply = this->bus.call(method);
-+ reply.read(pgoodProp);
-+ pgood = sdbusplus::message::variant_ns::get<int>(pgoodProp);
-+ }
-+ catch (const sdbusplus::exception::SdBusError& e)
-+ {
-+ log<level::ERR>("Error performing call to get pgood",
-+ entry("NAME=%s", e.name()),
-+ entry("ERROR=%s", e.what()));
-+ }
- }
-
- /** @brief Set value of HostTransition */
-@@ -85,6 +207,9 @@ class Host : public HostInherit
- /** @brief Set value of CurrentHostState */
- HostState currentHostState(HostState value) override;
-
-+ /** @brief Set value of HostRestartCause */
-+ RestartCause hostRestartCause(RestartCause value) override;
-+
- /**
- * @brief Set host reboot count to default
- *
-@@ -192,7 +317,9 @@ class Host : public HostInherit
- server::Progress::bootProgress()),
- convertForMessage(
- sdbusplus::xyz::openbmc_project::State::OperatingSystem::
-- server::Status::operatingSystemState()));
-+ server::Status::operatingSystemState()),
-+ convertForMessage(sdbusplus::xyz::openbmc_project::State::
-+ server::Host::hostRestartCause()));
- }
-
- /** @brief Function required by Cereal to perform deserialization.
-@@ -208,7 +335,8 @@ class Host : public HostInherit
- std::string reqTranState;
- std::string bootProgress;
- std::string osState;
-- archive(reqTranState, bootProgress, osState);
-+ std::string restartCause;
-+ archive(reqTranState, bootProgress, osState, restartCause);
- auto reqTran = Host::convertTransitionFromString(reqTranState);
- // When restoring, set the requested state with persistent value
- // but don't call the override which would execute it
-@@ -219,6 +347,8 @@ class Host : public HostInherit
- sdbusplus::xyz::openbmc_project::State::OperatingSystem::server::
- Status::operatingSystemState(
- Host::convertOSStatusFromString(osState));
-+ sdbusplus::xyz::openbmc_project::State::server::Host::hostRestartCause(
-+ Host::convertRestartCauseFromString(restartCause));
- }
-
- /** @brief Serialize and persist requested host state
-@@ -239,6 +369,9 @@ class Host : public HostInherit
- */
- bool deserialize(const fs::path& path);
-
-+ /** @brief Used to restore HostRestartCause value from persisted file */
-+ void restoreHostRestartCause();
-+
- /** @brief Persistent sdbusplus DBus bus connection. */
- sdbusplus::bus::bus& bus;
-
-@@ -247,6 +380,15 @@ class Host : public HostInherit
-
- // Settings objects of interest
- settings::Objects settings;
-+
-+ bool resetButtonPressed;
-+ bool powerButtonPressed;
-+ bool powerStateChanged;
-+ int32_t pgood;
-+
-+ sdbusplus::bus::match_t powerButtonPressedSignal;
-+ sdbusplus::bus::match_t resetButtonPressedSignal;
-+ sdbusplus::bus::match_t postCompletePropSignal;
- };
-
- } // namespace manager
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0003-Use-warm-reboot-for-the-Reboot-host-state-transition.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0003-Use-warm-reboot-for-the-Reboot-host-state-transition.patch
deleted file mode 100644
index 40722c3c9..000000000
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0003-Use-warm-reboot-for-the-Reboot-host-state-transition.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 8a7f73a0688524c71023da89e8cb5578dac16f5d Mon Sep 17 00:00:00 2001
-From: Yong Li <yong.b.li@linux.intel.com>
-Date: Fri, 8 Mar 2019 17:21:49 +0800
-Subject: [PATCH] Use warm-reboot for the Reboot host state transition
-
-The same as reset button pressing, the pgood signal will keep on during the reboot
-
-Tested By:
-ipmitool chassis power reset
-The pgood(gpio219) will be keep high during the reset process
-
-Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
----
- host_state_manager.cpp | 20 +++++++++++++-------
- 1 file changed, 13 insertions(+), 7 deletions(-)
-
-diff --git a/host_state_manager.cpp b/host_state_manager.cpp
-index 03d210d..8fac348 100644
---- a/host_state_manager.cpp
-+++ b/host_state_manager.cpp
-@@ -44,8 +44,9 @@ constexpr auto HOST_STATE_SOFT_POWEROFF_TGT = "obmc-host-shutdown@0.target";
- constexpr auto HOST_STATE_POWEROFF_TGT = "obmc-host-stop@0.target";
- constexpr auto HOST_STATE_POWERON_TGT = "obmc-host-start@0.target";
- constexpr auto HOST_STATE_POWERON_MIN_TGT = "obmc-host-startmin@0.target";
--constexpr auto HOST_STATE_REBOOT_TGT = "obmc-host-reboot@0.target";
-+constexpr auto HOST_STATE_REBOOT_TGT = "obmc-host-warm-reset@0.target";
- constexpr auto HOST_STATE_QUIESCE_TGT = "obmc-host-quiesce@0.target";
-+constexpr auto hostStateRebootService = "intel-power-warm-reset@0.service";
-
- constexpr auto ACTIVE_STATE = "active";
- constexpr auto ACTIVATING_STATE = "activating";
-@@ -168,6 +169,7 @@ bool Host::stateActive(const std::string& target)
-
- const auto& currentStateStr =
- sdbusplus::message::variant_ns::get<std::string>(currentState);
-+
- return currentStateStr == ACTIVE_STATE ||
- currentStateStr == ACTIVATING_STATE;
- }
-@@ -236,18 +238,22 @@ void Host::sysStateChange(sdbusplus::message::message& msg)
- // Read the msg and populate each variable
- msg.read(newStateID, newStateObjPath, newStateUnit, newStateResult);
-
-- if ((newStateUnit == HOST_STATE_POWEROFF_TGT) &&
-- (newStateResult == "done") &&
-- (!stateActive(HOST_STATE_POWERON_MIN_TGT)))
-+ if (((newStateUnit == HOST_STATE_POWEROFF_TGT) &&
-+ (newStateResult == "done") &&
-+ (!stateActive(HOST_STATE_POWERON_MIN_TGT))) ||
-+ ((newStateUnit == hostStateRebootService) &&
-+ (newStateResult == "done")))
- {
- log<level::INFO>("Received signal that host is off");
- this->currentHostState(server::Host::HostState::Off);
- this->bootProgress(bootprogress::Progress::ProgressStages::Unspecified);
- this->operatingSystemState(osstatus::Status::OSStatus::Inactive);
- }
-- else if ((newStateUnit == HOST_STATE_POWERON_MIN_TGT) &&
-- (newStateResult == "done") &&
-- (stateActive(HOST_STATE_POWERON_MIN_TGT)))
-+ else if (((newStateUnit == HOST_STATE_POWERON_MIN_TGT) &&
-+ (newStateResult == "done") &&
-+ (stateActive(HOST_STATE_POWERON_MIN_TGT))) ||
-+ ((newStateUnit == HOST_STATE_REBOOT_TGT) &&
-+ (newStateResult == "done")))
- {
- log<level::INFO>("Received signal that host is running");
- this->currentHostState(server::Host::HostState::Running);
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0004-Add-Power-Restore-delay-support.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0004-Add-Power-Restore-delay-support.patch
deleted file mode 100644
index 31cb31079..000000000
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/0004-Add-Power-Restore-delay-support.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From 0edff651156ae63b6a73d9cb81e5e76cc6ae501a Mon Sep 17 00:00:00 2001
-From: Yong Li <yong.b.li@linux.intel.com>
-Date: Fri, 12 Apr 2019 18:43:06 +0800
-Subject: [PATCH] Add Power Restore delay support
-
-That takes effect whenever the BMC
-automatically turns on the system due
-to the Power Restore Policy setting
-
-Tested:
-Set power restore delay:
-ipmitool raw 0x30 0x54 0 7
-Set restore policy as always-on:
-ipmitool chassis policy always-on
-AC off/on, check the journal log, the host will start boot after 7 seconds delay
-
-Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
----
- discover_system_state.cpp | 71 +++++++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 68 insertions(+), 3 deletions(-)
-
-diff --git a/discover_system_state.cpp b/discover_system_state.cpp
-index 0b5798a..298ae5b 100644
---- a/discover_system_state.cpp
-+++ b/discover_system_state.cpp
-@@ -1,5 +1,4 @@
- #include <getopt.h>
--#include <iostream>
- #include <map>
- #include <string>
- #include <config.h>
-@@ -114,6 +113,49 @@ void setProperty(sdbusplus::bus::bus& bus, const std::string& path,
- return;
- }
-
-+int getPowerRestoreDelay(sdbusplus::bus::bus& bus, uint16_t& delay)
-+{
-+ static constexpr const char* powerRestoreDelayObjPath =
-+ "/xyz/openbmc_project/control/power_restore_delay";
-+ static constexpr const char* powerRestoreDelayIntf =
-+ "xyz.openbmc_project.Control.Power.RestoreDelay";
-+ static constexpr const char* powerRestoreDelayProp = "PowerRestoreDelay";
-+
-+ std::string service =
-+ getService(bus, powerRestoreDelayObjPath, powerRestoreDelayIntf);
-+
-+ sdbusplus::message::message method = bus.new_method_call(
-+ service.c_str(), powerRestoreDelayObjPath, PROPERTY_INTERFACE, "Get");
-+
-+ method.append(powerRestoreDelayIntf, powerRestoreDelayProp);
-+
-+ try
-+ {
-+ auto reply = bus.call(method);
-+ sdbusplus::message::variant<uint16_t> variant;
-+ reply.read(variant);
-+ delay = sdbusplus::message::variant_ns::get<uint16_t>(variant);
-+ }
-+ catch (sdbusplus::exception_t&)
-+ {
-+ phosphor::logging::log<phosphor::logging::level::ERR>(
-+ "Failed to get property",
-+ phosphor::logging::entry("PROPERTY=%s", powerRestoreDelayProp),
-+ phosphor::logging::entry("PATH=%s", powerRestoreDelayObjPath),
-+ phosphor::logging::entry("INTERFACE=%s", powerRestoreDelayIntf));
-+ return -1;
-+ }
-+ return 0;
-+}
-+
-+void applyPowerRestoreDelay(uint16_t delay)
-+{
-+ if (delay > 0)
-+ {
-+ log<level::INFO>("Apply Power Restore Delay", entry("DELAY=%d", delay));
-+ std::this_thread::sleep_for(std::chrono::milliseconds(1000 * delay));
-+ }
-+}
- } // namespace manager
- } // namespace state
- } // namespace phosphor
-@@ -176,13 +218,27 @@ int main(int argc, char** argv)
- log<level::INFO>("Host power is off, checking power policy",
- entry("POWER_POLICY=%s", powerPolicy.c_str()));
-
-+ uint16_t delay = 0;
-+ int ret = getPowerRestoreDelay(bus, delay);
-+
-+ if (ret != 0)
-+ {
-+ log<level::WARNING>("getPowerRestoreDelay failed!");
-+ delay = 0;
-+ }
-+
- if (RestorePolicy::Policy::AlwaysOn ==
- RestorePolicy::convertPolicyFromString(powerPolicy))
- {
-+ applyPowerRestoreDelay(delay);
-+
- log<level::INFO>("power_policy=ALWAYS_POWER_ON, powering host on");
-+
- setProperty(bus, hostPath, HOST_BUSNAME, "RequestedHostTransition",
- convertForMessage(server::Host::Transition::On));
-
-+ // Host on, needs to set the restart cause after host transition
-+ // since host transition will change the restart cause
- setProperty(
- bus, hostPath, HOST_BUSNAME, "HostRestartCause",
- convertForMessage(server::Host::RestartCause::PowerPolicyAlwaysOn));
-@@ -195,17 +251,26 @@ int main(int argc, char** argv)
- // Read last requested state and re-request it to execute it
- auto hostReqState =
- getProperty(bus, hostPath, HOST_BUSNAME, "RequestedHostTransition");
-- setProperty(bus, hostPath, HOST_BUSNAME, "RequestedHostTransition",
-- hostReqState);
-
- if (server::Host::convertTransitionFromString(hostReqState) ==
- server::Host::Transition::On)
- {
-+ applyPowerRestoreDelay(delay);
-+ setProperty(bus, hostPath, HOST_BUSNAME, "RequestedHostTransition",
-+ hostReqState);
-+
-+ // Host on, needs to set the restart cause after host transition
-+ // since host transition will change the restart cause
- setProperty(
- bus, hostPath, HOST_BUSNAME, "HostRestartCause",
- convertForMessage(
- server::Host::RestartCause::PowerPolicyPreviousState));
- }
-+ else
-+ {
-+ setProperty(bus, hostPath, HOST_BUSNAME, "RequestedHostTransition",
-+ hostReqState);
-+ }
- }
-
- return 0;
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reboot-host@.service b/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reboot-host@.service
deleted file mode 100644
index ffde01ca3..000000000
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reboot-host@.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=Reboot host%i
-Wants=obmc-host-stop@%i.target
-After=obmc-host-stop@%i.target
-
-[Service]
-#ExecStart={base_bindir}/systemctl start obmc-host-start@%i.target
-# This service is starting another target that conflicts with the
-# target this service is running in. OpenBMC needs a refactor of
-# how it does its host reset path. Until then, this short term
-# solution does the job.
-# Since this is a part of the reboot target, call the startmin
-# target which does the minimum required to start the host.
-ExecStart=/bin/sh -c "sleep 10 && systemctl start obmc-host-startmin@%i.target"
-
-
-[Install]
-WantedBy=obmc-host-reboot@%i.target
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reset-host-check@.service b/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reset-host-check@.service
deleted file mode 100644
index 13b8f0fca..000000000
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reset-host-check@.service
+++ /dev/null
@@ -1,19 +0,0 @@
-[Unit]
-Description=Check Host%i status on BMC reset
-Wants=mapper-wait@-xyz-openbmc_project-control-host%i.service
-After=mapper-wait@-xyz-openbmc_project-control-host%i.service
-Wants=obmc-host-reset-running@%i.target
-Before=obmc-host-reset-running@%i.target
-Wants=op-reset-chassis-on@%i.service
-After=op-reset-chassis-on@%i.service
-Conflicts=obmc-host-stop@%i.target
-ConditionPathExists=/run/openbmc/chassis@%i-on
-
-[Service]
-RemainAfterExit=yes
-Type=oneshot
-ExecStart=/bin/sh -c "if [ $(busctl get-property `mapper get-service /xyz/openbmc_project/Chassis/Control/Power%i` /xyz/openbmc_project/Chassis/Control/Power%i xyz.openbmc_project.Chassis.Control.Power vrd_good | sed 's/i\s*[1]/on/' | grep on | wc -l) != 0 ]; then mkdir -p /run/openbmc/ && touch /run/openbmc/host@%i-on; fi"
-SyslogIdentifier=phosphor-host-check
-
-[Install]
-WantedBy=obmc-host-reset@%i.target
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reset-host-reboot-attempts@.service b/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reset-host-reboot-attempts@.service
deleted file mode 100644
index 87c750c57..000000000
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager/phosphor-reset-host-reboot-attempts@.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Reset host reboot counter
-Wants=mapper-wait@-xyz-openbmc_project-state-host%i.service
-After=mapper-wait@-xyz-openbmc_project-state-host%i.service
-ConditionPathExists=!/run/openbmc/host@%i-on
-
-[Service]
-Restart=no
-Type=oneshot
-ExecStart=/bin/sh -c "busctl set-property `mapper get-service /xyz/openbmc_project/state/host%i` /xyz/openbmc_project/state/host%i xyz.openbmc_project.Control.Boot.RebootAttempts AttemptsLeft u 3"
-StartLimitInterval=0
-
-[Install]
-WantedBy=obmc-host-start@%i.target
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager_%.bbappend
deleted file mode 100644
index 63155ce0d..000000000
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-state-manager_%.bbappend
+++ /dev/null
@@ -1,10 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI += "file://0001-Modify-dbus-interface-for-power-control.patch \
- file://phosphor-reboot-host@.service \
- file://phosphor-reset-host-reboot-attempts@.service \
- file://phosphor-reset-host-check@.service \
- file://0002-Capture-host-restart-cause.patch \
- file://0003-Use-warm-reboot-for-the-Reboot-host-state-transition.patch \
- file://0004-Add-Power-Restore-delay-support.patch \
- "