summaryrefslogtreecommitdiffstats
path: root/meta-phosphor/common/recipes-phosphor
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2018-03-27 13:56:26 -0700
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-04-06 00:44:50 +0000
commit5c76e0cf9f742cae4156c30c033af50be1135ab7 (patch)
treeb69cfbba5ec42153f48164c902945bc2328c4ad2 /meta-phosphor/common/recipes-phosphor
parentd1ce2b877602202f89f3f55864e83e7ca2764194 (diff)
downloadtalos-openbmc-5c76e0cf9f742cae4156c30c033af50be1135ab7.tar.gz
talos-openbmc-5c76e0cf9f742cae4156c30c033af50be1135ab7.zip
Introduce new host-startmin action target
Requirements have arisen for OpenBMC firmware to run certain services only during fresh power on operations. To achieve that, break the obmc-host-start action target into two targets. The existing obmc-host-start target will now call the new obmc-host-startmin target. The startmin target will be the minimum services required to start the host. The obmc-host-start target is where services that should only be called during a fresh power on can be placed. The initial use case for this is the obmc-host-reboot target. It will call this new obmc-host-startmin target to do the bare minimum on a reboot operation. This then allows the use case for OpenBMC to only reset the host reboot count on a fresh power on operation. A new service will be added to the obmc-host-start target to do this. If a reboot operation is issued, or a host watchdog is triggered to cause a reboot, this service would not be started, ensuring the reboot count is properly decremented. Tested: Verified on/off/reboot and ran CT regression suite. https://gerrit.openbmc-project.xyz/#/c/9821/ is required for reboots to work properly. Change-Id: I86df03e6d671178c1525f852e196c4102bb73cb6 Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Diffstat (limited to 'meta-phosphor/common/recipes-phosphor')
-rw-r--r--meta-phosphor/common/recipes-phosphor/chassis/obmc-op-control-power.bb2
-rw-r--r--meta-phosphor/common/recipes-phosphor/chassis/obmc-pcie-detect.bb2
-rw-r--r--meta-phosphor/common/recipes-phosphor/chassis/obmc-pcie-detect/pcie-slot-detect@.service2
-rw-r--r--meta-phosphor/common/recipes-phosphor/state/files/phosphor-reboot-host@.service4
-rw-r--r--meta-phosphor/common/recipes-phosphor/state/phosphor-state-manager.bb11
-rw-r--r--meta-phosphor/common/recipes-phosphor/watchdog/phosphor-watchdog.bb4
6 files changed, 17 insertions, 8 deletions
diff --git a/meta-phosphor/common/recipes-phosphor/chassis/obmc-op-control-power.bb b/meta-phosphor/common/recipes-phosphor/chassis/obmc-op-control-power.bb
index e341463b5..fabddf37e 100644
--- a/meta-phosphor/common/recipes-phosphor/chassis/obmc-op-control-power.bb
+++ b/meta-phosphor/common/recipes-phosphor/chassis/obmc-op-control-power.bb
@@ -68,7 +68,7 @@ SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'RESET_ON_CHASSIS_FMT', 'OBMC_POWE
# Now show that the main control target requires these power targets
START_TMPL_CTRL = "obmc-chassis-poweron@.target"
-START_TGTFMT_CTRL = "obmc-host-start@{1}.target"
+START_TGTFMT_CTRL = "obmc-host-startmin@{1}.target"
START_INSTFMT_CTRL = "obmc-chassis-poweron@{0}.target"
START_FMT_CTRL = "../${START_TMPL_CTRL}:${START_TGTFMT_CTRL}.requires/${START_INSTFMT_CTRL}"
SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'START_FMT_CTRL', 'OBMC_POWER_INSTANCES', 'OBMC_CHASSIS_INSTANCES')}"
diff --git a/meta-phosphor/common/recipes-phosphor/chassis/obmc-pcie-detect.bb b/meta-phosphor/common/recipes-phosphor/chassis/obmc-pcie-detect.bb
index 6b5761b5e..6e0ad9719 100644
--- a/meta-phosphor/common/recipes-phosphor/chassis/obmc-pcie-detect.bb
+++ b/meta-phosphor/common/recipes-phosphor/chassis/obmc-pcie-detect.bb
@@ -9,7 +9,7 @@ inherit pkgconfig
SKELETON_DIR = "pciedetect"
TMPL = "pcie-slot-detect@.service"
-TGTFMT = "obmc-host-start@{0}.target"
+TGTFMT = "obmc-host-startmin@{0}.target"
INSTFMT = "pcie-slot-detect@{0}.service"
FMT = "../${TMPL}:${TGTFMT}.wants/${INSTFMT}"
diff --git a/meta-phosphor/common/recipes-phosphor/chassis/obmc-pcie-detect/pcie-slot-detect@.service b/meta-phosphor/common/recipes-phosphor/chassis/obmc-pcie-detect/pcie-slot-detect@.service
index 91adb769b..4545524d3 100644
--- a/meta-phosphor/common/recipes-phosphor/chassis/obmc-pcie-detect/pcie-slot-detect@.service
+++ b/meta-phosphor/common/recipes-phosphor/chassis/obmc-pcie-detect/pcie-slot-detect@.service
@@ -11,4 +11,4 @@ ExecStart=/usr/bin/env pcie_slot_present.exe
SyslogIdentifier=pcie_slot_present.exe
[Install]
-WantedBy=obmc-host-start@%i.target
+WantedBy=obmc-host-startmin@%i.target
diff --git a/meta-phosphor/common/recipes-phosphor/state/files/phosphor-reboot-host@.service b/meta-phosphor/common/recipes-phosphor/state/files/phosphor-reboot-host@.service
index f8f017105..6158086e1 100644
--- a/meta-phosphor/common/recipes-phosphor/state/files/phosphor-reboot-host@.service
+++ b/meta-phosphor/common/recipes-phosphor/state/files/phosphor-reboot-host@.service
@@ -9,7 +9,9 @@ After=obmc-host-stop@%i.target
# 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.
-ExecStart=/bin/sh -c "sleep 5 && systemctl start obmc-host-start@%i.target"
+# 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 5 && systemctl start obmc-host-startmin@%i.target"
[Install]
diff --git a/meta-phosphor/common/recipes-phosphor/state/phosphor-state-manager.bb b/meta-phosphor/common/recipes-phosphor/state/phosphor-state-manager.bb
index 67988f538..993615651 100644
--- a/meta-phosphor/common/recipes-phosphor/state/phosphor-state-manager.bb
+++ b/meta-phosphor/common/recipes-phosphor/state/phosphor-state-manager.bb
@@ -116,13 +116,20 @@ HOST_SHUTDOWN_INSTFMT = "obmc-host-shutdown@{0}.target"
HOST_REBOOT_FMT = "../${HOST_SHUTDOWN_TMPL}:${HOST_REBOOT_TGTFMT}.requires/${HOST_SHUTDOWN_INSTFMT}"
SYSTEMD_LINK_${PN}-host += "${@compose_list_zip(d, 'HOST_REBOOT_FMT', 'OBMC_HOST_INSTANCES')}"
-# And also force the reboot target to call the host start service
+# And also force the reboot target to call the host startmin service
HOST_REBOOT_SVC = "phosphor-reboot-host@.service"
HOST_REBOOT_SVC_INST = "phosphor-reboot-host@{0}.service"
HOST_REBOOT_SVC_FMT = "../${HOST_REBOOT_SVC}:${HOST_REBOOT_TGTFMT}.requires/${HOST_REBOOT_SVC_INST}"
SYSTEMD_LINK_${PN}-host += "${@compose_list_zip(d, 'HOST_REBOOT_SVC_FMT', 'OBMC_HOST_INSTANCES', 'OBMC_HOST_INSTANCES')}"
+# Force the host-start target to call the host-startmin target
+HOST_STARTMIN_TMPL = "obmc-host-startmin@.target"
+HOST_START_TGTFMT = "obmc-host-start@{0}.target"
+HOST_STARTMIN_INSTFMT = "obmc-host-startmin@{0}.target"
+HOST_START_FMT = "../${HOST_STARTMIN_TMPL}:${HOST_START_TGTFMT}.requires/${HOST_STARTMIN_INSTFMT}"
+SYSTEMD_LINK_${PN}-host += "${@compose_list_zip(d, 'HOST_START_FMT', 'OBMC_HOST_INSTANCES')}"
+
SRC_URI += "git://github.com/openbmc/phosphor-state-manager"
-SRCREV = "90e5ae705afa8b63e41815a57cf5858b4ca7e710"
+SRCREV = "969b2613fed44f5b504411b21a9c65d89ed28bf5"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/common/recipes-phosphor/watchdog/phosphor-watchdog.bb b/meta-phosphor/common/recipes-phosphor/watchdog/phosphor-watchdog.bb
index 7ccb1524c..d0b04cc55 100644
--- a/meta-phosphor/common/recipes-phosphor/watchdog/phosphor-watchdog.bb
+++ b/meta-phosphor/common/recipes-phosphor/watchdog/phosphor-watchdog.bb
@@ -43,8 +43,8 @@ SYSTEMD_SERVICE_${PN} += "${ENABLE_WATCHDOG_TMPL}"
WATCHDOG_TGTFMT = "phosphor-watchdog@{0}.service"
ENABLE_WATCHDOG_TGTFMT = "obmc-enable-host-watchdog@{0}.service"
-WATCHDOG_FMT = "../${WATCHDOG_TMPL}:obmc-host-start@{1}.target.wants/${WATCHDOG_TGTFMT}"
-ENABLE_WATCHDOG_FMT = "../${ENABLE_WATCHDOG_TMPL}:obmc-host-start@{0}.target.wants/${ENABLE_WATCHDOG_TGTFMT}"
+WATCHDOG_FMT = "../${WATCHDOG_TMPL}:obmc-host-startmin@{1}.target.wants/${WATCHDOG_TGTFMT}"
+ENABLE_WATCHDOG_FMT = "../${ENABLE_WATCHDOG_TMPL}:obmc-host-startmin@{0}.target.wants/${ENABLE_WATCHDOG_TGTFMT}"
SYSTEMD_LINK_${PN} += "${@compose_list(d, 'WATCHDOG_FMT', 'OBMC_HOST_WATCHDOG_INSTANCES', 'OBMC_HOST_INSTANCES')}"
SYSTEMD_LINK_${PN} += "${@compose_list(d, 'ENABLE_WATCHDOG_FMT', 'OBMC_HOST_INSTANCES')}"
OpenPOWER on IntegriCloud