summaryrefslogtreecommitdiff
path: root/meta-facebook
diff options
context:
space:
mode:
authorKumar Thangavel <thangavel.k@hcl.com>2021-11-26 09:33:10 +0300
committerPatrick Williams <patrick@stwcx.xyz>2022-07-26 18:41:19 +0300
commitbf2522d9bcd7790e170c365b992bedb69c0c8dfb (patch)
tree109a62193cda375a2f3424e86c0ce0f1c7d29f33 /meta-facebook
parent41025a0ada2aec794079cfbfc796e673a04f10dd (diff)
downloadopenbmc-bf2522d9bcd7790e170c365b992bedb69c0c8dfb.tar.xz
meta-facebook: yosemitev2 : Add support to take actions if
Fan/NIC sensor values crossed thresholds Added support to trigger hard shutdown alarms and power off the slots of the platform if the Fan/NIC sensors values getting low compared to threshold values. Added platform specific service file and script to take platorm specific actions. TESTED : Verified all the slots getting powered Off when fan/nic sensor values crossed threshold values. Signed-off-by: Kumar Thangavel <thangavel.k@hcl.com> Change-Id: I6deb6707e574a375fac8f2379f47661a5a0ed332
Diffstat (limited to 'meta-facebook')
-rw-r--r--meta-facebook/recipes-phosphor/fans/phosphor-fan/bletchley/host-poweroff5
-rw-r--r--meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-hard-poweroff@.target4
-rw-r--r--meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-poweroff@0.target3
-rw-r--r--meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-poweroff.service7
-rw-r--r--meta-facebook/recipes-phosphor/fans/phosphor-fan/tiogapass/host-poweroff5
-rw-r--r--meta-facebook/recipes-phosphor/fans/phosphor-fan/yosemitev2/host-poweroff28
-rw-r--r--meta-facebook/recipes-phosphor/fans/phosphor-fan_%.bbappend51
7 files changed, 103 insertions, 0 deletions
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/bletchley/host-poweroff b/meta-facebook/recipes-phosphor/fans/phosphor-fan/bletchley/host-poweroff
new file mode 100644
index 0000000000..893facbf5b
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/bletchley/host-poweroff
@@ -0,0 +1,5 @@
+#!/bin/bash
+# Power off the hosts when fan sensors crossed thresholds.
+
+echo "This feature is not implemented in bletchley and it will be implemented in future."
+
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-hard-poweroff@.target b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-hard-poweroff@.target
new file mode 100644
index 0000000000..0512fa4d63
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-hard-poweroff@.target
@@ -0,0 +1,4 @@
+[Unit]
+Description=Chassis%i (Hard Power Off)
+After=multi-user.target
+Requires=obmc-poweroff.service
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-poweroff@0.target b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-poweroff@0.target
new file mode 100644
index 0000000000..0389cf72bb
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-poweroff@0.target
@@ -0,0 +1,3 @@
+[Unit]
+Description=Chassis%i (Power Off)
+After=multi-user.target
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-poweroff.service b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-poweroff.service
new file mode 100644
index 0000000000..5f7ff4c0c0
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-poweroff.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=power off host
+
+[Service]
+RemainAfterExit=no
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-fan-sensor-monitor/host-poweroff
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/tiogapass/host-poweroff b/meta-facebook/recipes-phosphor/fans/phosphor-fan/tiogapass/host-poweroff
new file mode 100644
index 0000000000..3d1212b78d
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/tiogapass/host-poweroff
@@ -0,0 +1,5 @@
+#!/bin/bash
+# Power off the hosts when fan sensors crossed thresholds.
+
+echo "This feature is not implemented in Tiogapass and it will be implemented in future."
+
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/yosemitev2/host-poweroff b/meta-facebook/recipes-phosphor/fans/phosphor-fan/yosemitev2/host-poweroff
new file mode 100644
index 0000000000..782f085314
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/yosemitev2/host-poweroff
@@ -0,0 +1,28 @@
+#!/bin/bash
+# Power off the hosts when fan sensors crossed thresholds.
+
+echo "Power off the hosts if fansensors threshold crossed ::"
+
+HOST_INSTANCES="HOST_INSTANCES_SED_REPLACEMENT_VALUE"
+
+DBUS_SERVICE="xyz.openbmc_project.State.Chassis"
+DBUS_OBJECT="/xyz/openbmc_project/state/chassis"
+DBUS_INTERFACE="xyz.openbmc_project.State.Chassis"
+DBUS_PROPERTY="RequestedPowerTransition"
+PROPERTY_VALUE="xyz.openbmc_project.State.Chassis.Transition.Off"
+
+# Power off the hosts.
+power-off-all-hosts()
+{
+ for host_id in $HOST_INSTANCES
+ do
+ echo "chosen host id :::$host_id"
+
+ # host power off
+ output=$(busctl set-property $DBUS_SERVICE$host_id $DBUS_OBJECT$host_id $DBUS_INTERFACE $DBUS_PROPERTY s $PROPERTY_VALUE)
+ echo "$output"
+
+ done
+}
+
+power-off-all-hosts
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan_%.bbappend b/meta-facebook/recipes-phosphor/fans/phosphor-fan_%.bbappend
new file mode 100644
index 0000000000..23aac0a913
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan_%.bbappend
@@ -0,0 +1,51 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+SRC_URI:append:fb-withhost = " file://obmc-chassis-hard-poweroff@.target \
+ file://obmc-chassis-poweroff@0.target \
+ file://obmc-poweroff.service \
+ file://host-poweroff"
+
+PACKAGECONFIG:append = " json sensor-monitor"
+
+EXTRA_OECONF = "enable_host_state=yes"
+
+RDEPENDS:sensor-monitor = " bash"
+
+do_install:append:fb-withhost() {
+
+install -d ${D}${systemd_system_unitdir}
+install -m 0644 ${WORKDIR}/obmc-chassis-hard-poweroff@.target ${D}${systemd_system_unitdir}
+install -m 0644 ${WORKDIR}/obmc-chassis-poweroff@0.target ${D}${systemd_system_unitdir}
+install -m 0644 ${WORKDIR}/obmc-poweroff.service ${D}${systemd_system_unitdir}
+
+# Store the bitbake variable OBMC_HOST_INSTANCES inside the script as HOST_INSTANCES variable using sed.
+sed -i -e "s,HOST_INSTANCES_SED_REPLACEMENT_VALUE,${OBMC_HOST_INSTANCES},g" ${WORKDIR}/host-poweroff
+
+install -m 0755 -d ${D}/var/lib/phosphor-fan-presence/sensor-monitor
+
+install -d ${D}/usr/libexec/phosphor-fan-sensor-monitor
+install -m 0777 ${WORKDIR}/host-poweroff ${D}/usr/libexec/phosphor-fan-sensor-monitor/
+
+}
+
+pkg_postinst:${PN}() {
+
+mkdir -p $D$systemd_system_unitdir/obmc-chassis-hard-poweroff@0.target.requires
+mkdir -p $D$systemd_system_unitdir/obmc-chassis-hard-poweroff@0.target.requires/obmc-chassis-poweroff@0.target.requires
+
+LINK="$D$systemd_system_unitdir/obmc-chassis-hard-poweroff@0.target.requires/obmc-chassis-poweroff@0.target"
+TARGET="../obmc-chassis-poweroff@0.target"
+ln -s $TARGET $LINK
+
+LINK="$D$systemd_system_unitdir/obmc-chassis-hard-poweroff@0.target.requires/obmc-chassis-poweroff@0.target.requires/obmc-poweroff.service"
+TARGET="../../obmc-poweroff.service"
+ln -s $TARGET $LINK
+
+}
+
+FILES:sensor-monitor += "/usr/libexec/phosphor-fan-sensor-monitor/host-poweroff"
+
+FILES:sensor-monitor += "${systemd_system_unitdir}/obmc-chassis-hard-poweroff@.target"
+FILES:sensor-monitor += "${systemd_system_unitdir}/obmc-chassis-poweroff@0.target "
+FILES:sensor-monitor += "${systemd_system_unitdir}/obmc-poweroff.service"
+