From cf92a506586cb25e57ec06aaeacbc223832d5e28 Mon Sep 17 00:00:00 2001 From: Matt Spinler Date: Wed, 8 Mar 2017 13:53:51 -0600 Subject: 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 --- .../packagegroups/packagegroup-op-apps.bb | 4 ++-- .../meta-openpower/conf/machine/include/p9.inc | 2 +- .../systemd/obmc-targets/obmc-power-stop@.target | 1 + .../recipes-phosphor/chassis/obmc-fsi-scan.bb | 15 --------------- .../chassis/obmc-fsi-scan/fsi-scan@.service | 16 ---------------- .../common/recipes-phosphor/chassis/obmc-fsi.bb | 21 +++++++++++++++++++++ .../chassis/obmc-fsi/fsi-bind@.service | 18 ++++++++++++++++++ .../chassis/obmc-fsi/fsi-disable.service | 8 ++++++++ .../chassis/obmc-fsi/fsi-enable.service | 10 ++++++++++ .../chassis/obmc-fsi/fsi-scan@.service | 15 +++++++++++++++ 10 files changed, 76 insertions(+), 34 deletions(-) delete mode 100644 meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan.bb delete mode 100644 meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan/fsi-scan@.service create mode 100644 meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi.bb create mode 100644 meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-bind@.service create mode 100644 meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-disable.service create mode 100644 meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-enable.service create mode 100644 meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-scan@.service 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-scan/fsi-scan@.service b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan/fsi-scan@.service deleted file mode 100644 index ca19f1d99..000000000 --- a/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi-scan/fsi-scan@.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Scan FSI devices -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 -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" -Type=oneshot -RemainAfterExit=yes - -[Install] -RequiredBy=obmc-power-chassis-on@%i.target 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/fsi-scan@.service b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-scan@.service new file mode 100644 index 000000000..8f94e28ab --- /dev/null +++ b/meta-phosphor/common/recipes-phosphor/chassis/obmc-fsi/fsi-scan@.service @@ -0,0 +1,15 @@ +[Unit] +Description=Scan FSI devices +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 +Conflicts=obmc-power-chassis-off@%i.target + +[Service] +ExecStart=/bin/sh -c "echo 1 > /sys/bus/platform/devices/fsi-master/scan" +Type=oneshot +RemainAfterExit=yes + +[Install] +RequiredBy=obmc-power-chassis-on@%i.target -- cgit v1.2.1