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>
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-reboot@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-reboot@.target
index 5ee53ae..dc280ea 100644
--- a/common/recipes-core/systemd/obmc-targets/obmc-host-reboot@.target
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-reboot@.target
@@ -4,7 +4,7 @@
After={SYSTEMD_DEFAULT_TARGET}
Wants=mapper-wait@-org-openbmc-control-chassis%i.service
After=mapper-wait@-org-openbmc-control-chassis%i.service
-Conflicts=obmc-host-start@%i.target
+Conflicts=obmc-host-startmin@%i.target
RefuseManualStop=yes
OnFailure=obmc-chassis-poweroff@%i.target
OnFailureJobMode=flush
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-startmin@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-startmin@.target
new file mode 100644
index 0000000..6e924ad
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-startmin@.target
@@ -0,0 +1,10 @@
+[Unit]
+Description=Start Host%i Minimum
+Wants={SYSTEMD_DEFAULT_TARGET}
+After={SYSTEMD_DEFAULT_TARGET}
+Wants=mapper-wait@-org-openbmc-control-chassis%i.service
+After=mapper-wait@-org-openbmc-control-chassis%i.service
+Conflicts=obmc-host-stop@%i.target
+RefuseManualStop=yes
+OnFailure=obmc-host-quiesce@%i.target
+OnFailureJobMode=flush
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target
index 75afd43..e88d3ea 100644
--- a/common/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target
@@ -3,6 +3,6 @@
Wants={SYSTEMD_DEFAULT_TARGET}
After={SYSTEMD_DEFAULT_TARGET}
Before=obmc-host-stopping@%i.target
-Conflicts=obmc-host-start@%i.target
+Conflicts=obmc-host-startmin@%i.target
RefuseManualStart=yes
RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-stop@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-stop@.target
index 6353e74..8e99bcc 100644
--- a/common/recipes-core/systemd/obmc-targets/obmc-host-stop@.target
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-stop@.target
@@ -5,7 +5,7 @@
Wants=mapper-wait@-org-openbmc-control-chassis%i.service
After=mapper-wait@-org-openbmc-control-chassis%i.service
After=obmc-chassis-poweroff@%i.target
-Conflicts=obmc-host-start@%i.target
+Conflicts=obmc-host-startmin@%i.target
RefuseManualStop=yes
OnFailure=obmc-chassis-poweroff@%i.target
OnFailureJobMode=flush
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target
index d3efca5..74039fc 100644
--- a/common/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target
@@ -4,6 +4,6 @@
Wants=obmc-host-stopping@%i.target
After=obmc-host-stopping@%i.target
Before=obmc-power-stop-pre@%i.target
-Conflicts=obmc-host-start@%i.target
+Conflicts=obmc-host-startmin@%i.target
RefuseManualStart=yes
RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-stopping@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-stopping@.target
index 6209c52..f087dea 100644
--- a/common/recipes-core/systemd/obmc-targets/obmc-host-stopping@.target
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-stopping@.target
@@ -4,7 +4,7 @@
Wants=obmc-host-stop-pre@%i.target
After=obmc-host-stop-pre@%i.target
Before=obmc-host-stopped@%i.target
-Conflicts=obmc-host-start@%i.target
+Conflicts=obmc-host-startmin@%i.target
Conflicts=obmc-host-starting@%i.target
RefuseManualStart=yes
RefuseManualStop=yes