warm-reboot: ensure cfam override is run
The cfam_override@.service is required in two situations:
- When chassis power is turned on (to ensure proper workarounds
and overrides are in place)
- When the host is warm rebooted (i.e. no chassis power is turned
off/on)
Install this service in both targets and ensure it only runs once per
boot.
Tested:
- Verified service was only run once during a cold boot
- Verified overrides were correctly applied on a warm reboot
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I5b71cf87bbbc753644d7bfb2ab578794e5b282a1
diff --git a/recipes-phosphor/host/op-host-control/cfam_override@.service b/recipes-phosphor/host/op-host-control/cfam_override@.service
index e6bc938..8b773ec 100644
--- a/recipes-phosphor/host/op-host-control/cfam_override@.service
+++ b/recipes-phosphor/host/op-host-control/cfam_override@.service
@@ -7,6 +7,7 @@
Wants=fsi-scan@%i.service
After=fsi-scan@%i.service
Conflicts=obmc-chassis-poweroff@%i.target
+Conflicts=obmc-host-stop@%i.target
ConditionPathExists=!/run/openbmc/chassis@%i-on
ConditionPathExists=/var/lib/obmc/cfam_overrides
@@ -18,3 +19,4 @@
[Install]
WantedBy=obmc-chassis-poweron@%i.target
+WantedBy=obmc-host-startmin@%i.target
diff --git a/recipes-phosphor/host/op-proc-control-systemd-links.bb b/recipes-phosphor/host/op-proc-control-systemd-links.bb
index cd4f63b..b8105fc 100644
--- a/recipes-phosphor/host/op-proc-control-systemd-links.bb
+++ b/recipes-phosphor/host/op-proc-control-systemd-links.bb
@@ -22,6 +22,14 @@
LINK="$D$systemd_system_unitdir/obmc-host-force-warm-reboot@0.target.requires/op-cfam-reset.service"
TARGET="../op-cfam-reset.service"
ln -s $TARGET $LINK
+
+ # Only install cfam override if p9 system
+ if [ "${@bb.utils.contains("MACHINE_FEATURES", "p9-cfam-override", "True", "False", d)}" = True ]; then
+ mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@0.target.requires
+ LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/cfam_override@0.service"
+ TARGET="../cfam_override@.service"
+ ln -s $TARGET $LINK
+ fi
}
pkg_prerm_${PN}() {
@@ -29,4 +37,9 @@
rm $LINK
LINK="$D$systemd_system_unitdir/obmc-host-force-warm-reboot@0.target.requires/op-cfam-reset.service"
rm $LINK
+ # Only uninstall cfam override if p9 system
+ if [ "${@bb.utils.contains("MACHINE_FEATURES", "p9-cfam-override", "True", "False", d)}" = True ]; then
+ LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/cfam_override@0.service"
+ rm $LINK
+ fi
}