diff options
author | Ashwin Murali <ashwin.murali@fii-na.com> | 2022-04-29 22:47:15 +0300 |
---|---|---|
committer | Ashwin Murali <ashwin.murali@fii-na.com> | 2022-07-22 19:17:39 +0300 |
commit | 321eb030ecc3a68776a7029acd64901dd32b4e11 (patch) | |
tree | cc592c9f5ad23178ed657b555aeca643b3f48298 /meta-fii | |
parent | c77d41d2f06c664862cf536ab9d5dffacd922ee4 (diff) | |
download | openbmc-321eb030ecc3a68776a7029acd64901dd32b4e11.tar.xz |
meta-fii: meta-mori: Add pwm_init package
Add pwm_init service to set fans to pwm mode and initialise them to a value of 50% on boot.
Signed-off-by: Ashwin Murali <ashwin.murali@fii-na.com>
Change-Id: I07963eda9b0c264e66d1dd4f2a0d31f4e74d831e
Diffstat (limited to 'meta-fii')
4 files changed, 71 insertions, 0 deletions
diff --git a/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init.bb b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init.bb new file mode 100644 index 0000000000..97daab696e --- /dev/null +++ b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init.bb @@ -0,0 +1,29 @@ +SUMMARY = "Initialize PWM sensors" +DESCRIPTION = "Initialize PWM sensors" +LICENSE = "CLOSED" +PR = "r1" + +inherit systemd + +DEPENDS = "systemd" +RDEPENDS:${PN} = "bash" + +S = "${WORKDIR}" +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" +SRC_URI += " \ + file://pwm_init.service \ + file://bin/pwm_init.sh \ + " + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_AUTO_ENABLE = "enable" +SYSTEMD_SERVICE:${PN} += "pwm_init.service" + +FILES:${PN} += "${bindir}/* ${systemd_system_unitdir}/*" + +do_install:append() { + install -d ${D}${libexecdir}/${PN} + install -m 0755 ${S}/bin/* ${D}${libexecdir}/${PN}/ + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${S}/*.service ${D}${systemd_system_unitdir} +} diff --git a/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/bin/pwm_init.sh b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/bin/pwm_init.sh new file mode 100644 index 0000000000..d1d7df1ac4 --- /dev/null +++ b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/bin/pwm_init.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# + +# Provide source directive to shellcheck. +# shellcheck source=meta-fii/meta-mori/recipes-mori/mori-fw-utility/mori-fw/mori-lib.sh +source /usr/libexec/mori-fw/mori-lib.sh + + +# Set all pwm to 50% +find /sys/class/hwmon/hwmon*/ -name 'pwm[1-6]' -exec bash -c 'echo "$1" && echo 127 > "$1" && cat "$1"' -- {} \; + + +# Set all fans to pwm mode. +find /sys/class/hwmon/hwmon*/ -name 'pwm*_enable' -exec bash -c 'echo "$1" && echo 1 > "$1" && cat "$1"' -- {} \; + + +for i in {0..5} +do + fan_pwm_rate_of_change=0x$(printf '%02x' $((8 + i)) | \ + awk '{print $1}') + # Set Fan PWM Rate-of-Change Bits(bits 4:2) to 000b + # Register 08h to 0Dh + oriRegVal=$(i2cget -y -f "${I2C_FANCTRL[0]}" 0x"${I2C_FANCTRL[1]}" \ + "$fan_pwm_rate_of_change") + updateVal=$((oriRegVal & 0xe3)) + updateVal=0x$(printf "%x" $updateVal) + i2cset -y -f "${I2C_FANCTRL[0]}" 0x"${I2C_FANCTRL[1]}" \ + "$fan_pwm_rate_of_change" "$updateVal" +done + diff --git a/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/pwm_init.service b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/pwm_init.service new file mode 100644 index 0000000000..351d5f15b4 --- /dev/null +++ b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/pwm_init.service @@ -0,0 +1,11 @@ +[Unit] +Description=Init PWM sensors +Before=xyz.openbmc_project.fansensor.service + +[Service] +Type=oneshot +ExecStart=/usr/libexec/pwm-init/pwm_init.sh + +[Install] +WantedBy=multi-user.target +WantedBy=xyz.openbmc_project.fansensor.service diff --git a/meta-fii/meta-mori/recipes-phosphor/image/obmc-phosphor-image.bbappend b/meta-fii/meta-mori/recipes-phosphor/image/obmc-phosphor-image.bbappend index 7d3a1ad092..88d0fa914b 100644 --- a/meta-fii/meta-mori/recipes-phosphor/image/obmc-phosphor-image.bbappend +++ b/meta-fii/meta-mori/recipes-phosphor/image/obmc-phosphor-image.bbappend @@ -32,6 +32,7 @@ OBMC_IMAGE_EXTRA_INSTALL:append:mori = " entity-manager" OBMC_IMAGE_EXTRA_INSTALL:append:mori = " fru-device" OBMC_IMAGE_EXTRA_INSTALL:append:mori = " dbus-sensors" OBMC_IMAGE_EXTRA_INSTALL:append:mori = " estoraged" +OBMC_IMAGE_EXTRA_INSTALL:append:mori = " pwm-init" OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-pid-control" OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-logging" OBMC_IMAGE_EXTRA_INSTALL:append:mori = " mori-cmd" |