summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Spinler <spinler@us.ibm.com>2017-03-08 13:53:51 -0600
committerPatrick Williams <patrick@stwcx.xyz>2017-03-16 20:00:47 +0000
commitcf92a506586cb25e57ec06aaeacbc223832d5e28 (patch)
tree8d5e8b2266a1e1dc10014aaca79818e61ca1001c
parent1f09d4ae2aa35b469578ff284c98579d23cdac4d (diff)
downloadtalos-openbmc-cf92a506586cb25e57ec06aaeacbc223832d5e28.tar.gz
talos-openbmc-cf92a506586cb25e57ec06aaeacbc223832d5e28.zip
Add FSI enable/disable services for cronus use
Start fsi-disable.service to unbind the FSI Driver. Start fsi-enable.service to bind it again and rescan. Also added a fsi-bind@.service so we can ensure the driver is bound each power on. Change-Id: I5fa62b44994aea3bb645e755187f29e720bf3bce Signed-off-by: Matt Spinler <spinler@us.ibm.com>
-rw-r--r--meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-op-apps.bb4
-rw-r--r--meta-openbmc-machines/meta-openpower/conf/machine/include/p9.inc2
-rw-r--r--meta-phosphor/common/recipes-core/systemd/obmc-targets/obmc-power-stop@.target1
-rw-r--r--meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan.bb15
-rw-r--r--meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi.bb21
-rw-r--r--meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-bind@.service18
-rw-r--r--meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-disable.service8
-rw-r--r--meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-enable.service10
-rw-r--r--meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-scan@.service (renamed from meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan/fsi-scan@.service)1
9 files changed, 61 insertions, 19 deletions
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-op-apps.bb b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-op-apps.bb
index d5a542a6a..b9d974cc2 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-op-apps.bb
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/packagegroups/packagegroup-op-apps.bb
@@ -33,8 +33,8 @@ RDEPENDS_${PN}-chassis = " \
obmc-watchdog \
obmc-host-failure-reboots \
"
-#Pull in obmc-fsi-scan on all P9 OpenPOWER systems
-RDEPENDS_${PN}-chassis += "${@mf_enabled(d, 'obmc-fsi-scan', 'obmc-fsi-scan')}"
+#Pull in obmc-fsi on all P9 OpenPOWER systems
+RDEPENDS_${PN}-chassis += "${@mf_enabled(d, 'obmc-fsi', 'obmc-fsi')}"
SUMMARY_${PN}-fans = "OpenPOWER Fans"
RDEPENDS_${PN}-fans = " \
diff --git a/meta-openbmc-machines/meta-openpower/conf/machine/include/p9.inc b/meta-openbmc-machines/meta-openpower/conf/machine/include/p9.inc
index 6fa9b7bbe..0aa3035bd 100644
--- a/meta-openbmc-machines/meta-openpower/conf/machine/include/p9.inc
+++ b/meta-openbmc-machines/meta-openpower/conf/machine/include/p9.inc
@@ -1,2 +1,2 @@
-OBMC_MACHINE_FEATURES += 'p9-vcs-workaround obmc-fsi-scan'
+OBMC_MACHINE_FEATURES += 'p9-vcs-workaround obmc-fsi'
PREFERRED_PROVIDER_virtual/obmc-host-ctl = "p9-host-start"
diff --git a/meta-phosphor/common/recipes-core/systemd/obmc-targets/obmc-power-stop@.target b/meta-phosphor/common/recipes-core/systemd/obmc-targets/obmc-power-stop@.target
index 7b909d1fe..edf669724 100644
--- a/meta-phosphor/common/recipes-core/systemd/obmc-targets/obmc-power-stop@.target
+++ b/meta-phosphor/common/recipes-core/systemd/obmc-targets/obmc-power-stop@.target
@@ -3,5 +3,6 @@ Description=Power%i Off
After=obmc-power-stop-pre@%i.target
Wants={SYSTEMD_DEFAULT_TARGET}
Conflicts=obmc-power-chassis-on@%i.target
+Conflicts=fsi-disable.service
RefuseManualStart=yes
RefuseManualStop=yes
diff --git a/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan.bb b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan.bb
deleted file mode 100644
index 4a4fdd760..000000000
--- a/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Scan for FSI devices"
-DESCRIPTION = "Tells the OpenFSI device driver to scan for FSI devices"
-PR = "r1"
-
-inherit obmc-phosphor-dbus-service
-inherit obmc-phosphor-license
-
-TMPL = "fsi-scan@.service"
-INSTFMT = "fsi-scan@{0}.service"
-TGTFMT = "obmc-power-chassis-on@{0}.target"
-FMT = "../${TMPL}:${TGTFMT}.requires/${INSTFMT}"
-
-SYSTEMD_SERVICE_${PN} += "${TMPL}"
-SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}"
-SYSTEMD_SUBSTITUTIONS += "MACHINE:${MACHINE}:${TMPL}"
diff --git a/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi.bb b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi.bb
new file mode 100644
index 000000000..37a326fd0
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi.bb
@@ -0,0 +1,21 @@
+SUMMARY = "FSI Services"
+DESCRIPTION = "Install FSI related services"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+TGTFMT = "obmc-power-chassis-on@{0}.target"
+
+TMPL_SCAN = "fsi-scan@.service"
+INSTFMT_SCAN = "fsi-scan@{0}.service"
+FMT_SCAN = "../${TMPL_SCAN}:${TGTFMT}.requires/${INSTFMT_SCAN}"
+
+TMPL_BIND = "fsi-bind@.service"
+INSTFMT_BIND = "fsi-bind@{0}.service"
+FMT_BIND = "../${TMPL_BIND}:${TGTFMT}.requires/${INSTFMT_BIND}"
+
+SYSTEMD_SERVICE_${PN} += "${TMPL_SCAN} ${TMPL_BIND} fsi-enable.service fsi-disable.service"
+
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_SCAN', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_BIND', 'OBMC_CHASSIS_INSTANCES')}"
diff --git a/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-bind@.service b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-bind@.service
new file mode 100644
index 000000000..77c61f414
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-bind@.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=Bind FSI Driver
+Wants=obmc-power-on@%i.target
+After=obmc-power-on@%i.target
+Wants=obmc-host-start-pre@%i.target
+Before=obmc-host-start-pre@%i.target
+Wants=fsi-scan@%i.service
+Before=fsi-scan@%i.service
+Conflicts=obmc-power-chassis-off@%i.target
+ConditionDirectoryNotEmpty=!/sys/bus/platform/drivers/fsi-master-gpio/fsi-master
+
+[Service]
+ExecStart=/bin/sh -c "echo fsi-master > /sys/bus/platform/drivers/fsi-master-gpio/bind"
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+RequiredBy=obmc-power-chassis-on@%i.target
diff --git a/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-disable.service b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-disable.service
new file mode 100644
index 000000000..a58af0445
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-disable.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Disable FSI
+Conflicts=fsi-enable.service
+
+[Service]
+ExecStart=/bin/sh -c "echo fsi-master > /sys/bus/platform/drivers/fsi-master-gpio/unbind"
+Type=oneshot
+RemainAfterExit=yes
diff --git a/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-enable.service b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-enable.service
new file mode 100644
index 000000000..c5b1ea139
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-enable.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Enable FSI
+Conflicts=fsi-disable.service
+ConditionDirectoryNotEmpty=!/sys/bus/platform/drivers/fsi-master-gpio/fsi-master
+
+[Service]
+ExecStart=/bin/sh -c "echo fsi-master > /sys/bus/platform/drivers/fsi-master-gpio/bind"
+ExecStart=/bin/sh -c "echo 1 > /sys/bus/platform/devices/fsi-master/scan"
+Type=oneshot
+RemainAfterExit=yes
diff --git a/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan/fsi-scan@.service b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-scan@.service
index ca19f1d99..8f94e28ab 100644
--- a/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan/fsi-scan@.service
+++ b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-scan@.service
@@ -5,7 +5,6 @@ After=obmc-power-on@%i.target
Wants=obmc-host-start-pre@%i.target
Before=obmc-host-start-pre@%i.target
Conflicts=obmc-power-chassis-off@%i.target
-ConditionPathExists=!/run/openbmc/chassis@%i-on
[Service]
ExecStart=/bin/sh -c "echo 1 > /sys/bus/platform/devices/fsi-master/scan"
OpenPOWER on IntegriCloud