systemd: Add syncronization points for OpenBMC

Add systemd syncronization targets to facilitate expressing
ordering dependencies.

Change-Id: I11d4fb2b8ade8d3ae74ddea44585153e2f59130f
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-chassis-start@.target b/common/recipes-core/systemd/obmc-targets/obmc-chassis-start@.target
new file mode 100644
index 0000000..c8eda8a
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-chassis-start@.target
@@ -0,0 +1,8 @@
+[Unit]
+Description=Chassis%i (Start)
+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-chassis-stop@%i.target
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-chassis-stop@.target b/common/recipes-core/systemd/obmc-targets/obmc-chassis-stop@.target
new file mode 100644
index 0000000..aeac3d6
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-chassis-stop@.target
@@ -0,0 +1,8 @@
+[Unit]
+Description=Chassis%i (Stop)
+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-chassis-start@%i.target
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-fan-control.target b/common/recipes-core/systemd/obmc-targets/obmc-fan-control.target
new file mode 100644
index 0000000..50665db
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-fan-control.target
@@ -0,0 +1,4 @@
+[Unit]
+Description=Fan Control
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-fans-ready.target b/common/recipes-core/systemd/obmc-targets/obmc-fans-ready.target
new file mode 100644
index 0000000..59e61c6
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-fans-ready.target
@@ -0,0 +1,4 @@
+[Unit]
+Description=Fans Ready
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-start-pre@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-start-pre@.target
new file mode 100644
index 0000000..d555d0a
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-start-pre@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Start Host%i (Pre)
+Wants={SYSTEMD_DEFAULT_TARGET}
+After={SYSTEMD_DEFAULT_TARGET}
+Conflicts=obmc-chassis-stop@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-start@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-start@.target
new file mode 100644
index 0000000..5d309d2
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-start@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Start Host%i
+Wants={SYSTEMD_DEFAULT_TARGET}
+After=obmc-host-start-pre@%i.target
+Conflicts=obmc-chassis-stop@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-started@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-started@.target
new file mode 100644
index 0000000..fcae6e9
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-started@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Host%i (Started)
+Wants={SYSTEMD_DEFAULT_TARGET}
+After=obmc-host-start@%i.target
+Conflicts=obmc-chassis-stop@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
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
new file mode 100644
index 0000000..a979250
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Stop Host%i (Pre)
+Wants={SYSTEMD_DEFAULT_TARGET}
+After={SYSTEMD_DEFAULT_TARGET}
+Conflicts=obmc-chassis-start@%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
new file mode 100644
index 0000000..c573e9c
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-stop@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Stop Host%i
+Wants={SYSTEMD_DEFAULT_TARGET}
+After=obmc-host-stop-pre@%i.target
+Conflicts=obmc-chassis-start@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target
new file mode 100644
index 0000000..92afdf0
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Host%i (Stopped)
+Wants={SYSTEMD_DEFAULT_TARGET}
+After=obmc-host-stop@%i.target
+Conflicts=obmc-chassis-start@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-mapper.target b/common/recipes-core/systemd/obmc-targets/obmc-mapper.target
new file mode 100644
index 0000000..5e52f4c
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-mapper.target
@@ -0,0 +1,4 @@
+[Unit]
+Description=Phosphor Object Mapper
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-power-off@.target b/common/recipes-core/systemd/obmc-targets/obmc-power-off@.target
new file mode 100644
index 0000000..bd4f8c9
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-power-off@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Power%i (Off)
+Wants={SYSTEMD_DEFAULT_TARGET}
+After=obmc-power-stop@%i.target
+Conflicts=obmc-chassis-start@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-power-on@.target b/common/recipes-core/systemd/obmc-targets/obmc-power-on@.target
new file mode 100644
index 0000000..c891173
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-power-on@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Power%i (On)
+Wants={SYSTEMD_DEFAULT_TARGET}
+After=obmc-power-start@%i.target
+Conflicts=obmc-chassis-stop@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-power-start-pre@.target b/common/recipes-core/systemd/obmc-targets/obmc-power-start-pre@.target
new file mode 100644
index 0000000..2891e79
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-power-start-pre@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Power%i On (Pre)
+Wants={SYSTEMD_DEFAULT_TARGET}
+After={SYSTEMD_DEFAULT_TARGET}
+Conflicts=obmc-chassis-stop@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-power-start@.target b/common/recipes-core/systemd/obmc-targets/obmc-power-start@.target
new file mode 100644
index 0000000..d23c5e9
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-power-start@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Power%i On
+After=obmc-power-start-pre@%i.target
+Wants={SYSTEMD_DEFAULT_TARGET}
+Conflicts=obmc-chassis-stop@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-power-stop-pre@.target b/common/recipes-core/systemd/obmc-targets/obmc-power-stop-pre@.target
new file mode 100644
index 0000000..db625b3
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-power-stop-pre@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Power%i Off (Pre)
+Wants={SYSTEMD_DEFAULT_TARGET}
+After={SYSTEMD_DEFAULT_TARGET}
+Conflicts=obmc-chassis-start@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-power-stop@.target b/common/recipes-core/systemd/obmc-targets/obmc-power-stop@.target
new file mode 100644
index 0000000..d7dd125
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-power-stop@.target
@@ -0,0 +1,7 @@
+[Unit]
+Description=Power%i Off
+After=obmc-power-stop-pre@%i.target
+Wants={SYSTEMD_DEFAULT_TARGET}
+Conflicts=obmc-chassis-start@%i.target
+RefuseManualStart=yes
+RefuseManualStop=yes
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-standby.target b/common/recipes-core/systemd/obmc-targets/obmc-standby.target
new file mode 100644
index 0000000..95044a4
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-standby.target
@@ -0,0 +1,9 @@
+[Unit]
+Description=Phosphor System - Standby
+Requires=multi-user.target
+RefuseManualStart=yes
+RefuseManualStop=yes
+AllowIsolate=yes
+
+[Install]
+WantedBy=multi-user.target