summaryrefslogtreecommitdiff
path: root/meta-ampere
diff options
context:
space:
mode:
authorThang Q. Nguyen <thang@os.amperecomputing.com>2021-12-30 14:06:27 +0300
committerThang Q. Nguyen <thang@os.amperecomputing.com>2022-01-05 10:07:30 +0300
commit90bb5e1711164a659a1ba16833b7c46202f93d2e (patch)
tree0f551335d26630f0447349a1cb33b2a6c0d8224d /meta-ampere
parent11b7ccf247c14c9c0a0ecde299c45318ff7067a4 (diff)
downloadopenbmc-90bb5e1711164a659a1ba16833b7c46202f93d2e.tar.xz
meta-ampere: mtjade: handle Tempt events
Handle S0/1 OVERTEMP and S0/1 HIGHTEMP GPIO signals from Host CPU that turn off the Host to prevent hardware damage and log an event. Tested: 1. Assert OVERTEMP event by running below command from SCP console: S0-cli> mww 0x10000f0112d0 0x2 Check if the Host is turned OFF and event is logged 2. Assert and deassert HIGHTEMP event on Socket 0 and check if new events are logged. 3. Repeat steps 1 and 2 on Socket 1 Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I16c9676be379ac5d21849c591fbdadda4a6951ef
Diffstat (limited to 'meta-ampere')
-rw-r--r--meta-ampere/meta-jade/recipes-ampere/platform/mtjade-utils.bb4
-rw-r--r--meta-ampere/meta-jade/recipes-ampere/platform/mtjade-utils/ampere_add_redfishevent.sh26
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor.bb32
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_hightemp_start@.service6
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_hightemp_stop@.service6
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_overtemp@.service7
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_hightemp_start4
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_hightemp_stop4
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_overtemp4
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_hightemp_start4
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_hightemp_stop4
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_overtemp4
-rw-r--r--meta-ampere/meta-jade/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend1
13 files changed, 105 insertions, 1 deletions
diff --git a/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-utils.bb b/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-utils.bb
index 1ed440a2bd..546315b7e1 100644
--- a/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-utils.bb
+++ b/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-utils.bb
@@ -9,6 +9,7 @@ SRC_URI = " \
file://gpio-lib.sh \
file://ampere_power_util.sh \
file://ampere_host_check.sh \
+ file://ampere_add_redfishevent.sh \
"
RDEPENDS:${PN} = "bash"
@@ -19,4 +20,5 @@ do_install() {
install -m 0755 ${WORKDIR}/gpio-defs.sh ${D}/${sbindir}/
install -m 0755 ${WORKDIR}/ampere_power_util.sh ${D}/${sbindir}/
install -m 0755 ${WORKDIR}/ampere_host_check.sh ${D}/${sbindir}/
-} \ No newline at end of file
+ install -m 0755 ${WORKDIR}/ampere_add_redfishevent.sh ${D}/${sbindir}/
+}
diff --git a/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-utils/ampere_add_redfishevent.sh b/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-utils/ampere_add_redfishevent.sh
new file mode 100644
index 0000000000..1170c6a7ca
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-utils/ampere_add_redfishevent.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+registry=$1
+msgarg=$2
+
+if [ -z "$registry" ]; then
+ echo "Usage:"
+ echo " $0 <redfish registry> <argument>"
+ exit
+fi
+
+# Check if logger-systemd exist. Do nothing if not exists
+if ! command -v logger-systemd;
+then
+ echo "logger-systemd does not exist. Skip log events for $registry $msgarg"
+ exit
+fi
+
+# Log events
+logger-systemd --journald << EOF
+MESSAGE=
+PRIORITY=
+SEVERITY=
+REDFISH_MESSAGE_ID=$registry
+REDFISH_MESSAGE_ARGS=$msgarg
+EOF
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor.bb b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor.bb
new file mode 100644
index 0000000000..c57ab1323c
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Ampere Computing LLC Host temperature event monitor application"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit obmc-phosphor-systemd
+inherit allarch
+
+DEPENDS += "virtual/obmc-gpio-monitor"
+RDEPENDS:${PN} += "virtual/obmc-gpio-monitor"
+
+OBMC_HOST_MONITOR_INSTANCES = "S0_overtemp S1_overtemp S0_hightemp_start S0_hightemp_stop S1_hightemp_start S1_hightemp_stop"
+
+# Copies config file having arguments for monitoring host overtemp
+# via GPIO assertion
+SYSTEMD_ENVIRONMENT_FILE:${PN} += " \
+ obmc/gpio/S0_overtemp \
+ obmc/gpio/S0_hightemp_start \
+ obmc/gpio/S0_hightemp_stop \
+ obmc/gpio/S1_overtemp \
+ obmc/gpio/S1_hightemp_start \
+ obmc/gpio/S1_hightemp_stop \
+ "
+
+
+SYSTEMD_SERVICE:${PN} = "ampere_overtemp@.service ampere_hightemp_start@.service ampere_hightemp_stop@.service"
+
+GPIO_MONITOR_TMPL = "phosphor-gpio-monitor@.service"
+GPIO_MONITOR_TGTFMT = "phosphor-gpio-monitor@{0}.service"
+TGT = "multi-user.target"
+TEMPEVENT_MONITOR_FMT = "../${GPIO_MONITOR_TMPL}:${TGT}.requires/${GPIO_MONITOR_TGTFMT}"
+SYSTEMD_LINK:${PN} += "${@compose_list(d, 'TEMPEVENT_MONITOR_FMT', 'OBMC_HOST_MONITOR_INSTANCES', 'OBMC_HOST_INSTANCES')}"
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_hightemp_start@.service b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_hightemp_start@.service
new file mode 100644
index 0000000000..5f26194eb0
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_hightemp_start@.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=Ampere Computing LLC HighTempt event
+
+[Service]
+Restart=no
+ExecStart=/usr/bin/env ampere_add_redfishevent.sh OpenBMC.0.1.AmpereEvent.Warning "CPU%i HighTemp asserted"
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_hightemp_stop@.service b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_hightemp_stop@.service
new file mode 100644
index 0000000000..012b0ddaf9
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_hightemp_stop@.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=Ampere Computing LLC HighTempt event
+
+[Service]
+Restart=no
+ExecStart=/usr/bin/env ampere_add_redfishevent.sh OpenBMC.0.1.AmpereEvent.OK "CPU%i HighTemp deasserted"
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_overtemp@.service b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_overtemp@.service
new file mode 100644
index 0000000000..587cba195d
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/ampere_overtemp@.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Ampere Computing LLC Overtemp event
+
+[Service]
+Restart=no
+ExecStart=/usr/bin/env obmcutil chassisoff
+ExecStartPost=/usr/bin/env ampere_add_redfishevent.sh OpenBMC.0.1.CPUThermalTrip.Critical %i
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_hightemp_start b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_hightemp_start
new file mode 100644
index 0000000000..44dc221ed8
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_hightemp_start
@@ -0,0 +1,4 @@
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=72
+POLARITY=1
+TARGET=ampere_hightemp_start@0.service
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_hightemp_stop b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_hightemp_stop
new file mode 100644
index 0000000000..ccd0519094
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_hightemp_stop
@@ -0,0 +1,4 @@
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=72
+POLARITY=0
+TARGET=ampere_hightemp_stop@0.service
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_overtemp b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_overtemp
new file mode 100644
index 0000000000..e39e196805
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S0_overtemp
@@ -0,0 +1,4 @@
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=51
+POLARITY=1
+TARGET=ampere_overtemp@0.service
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_hightemp_start b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_hightemp_start
new file mode 100644
index 0000000000..901eb00801
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_hightemp_start
@@ -0,0 +1,4 @@
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=216
+POLARITY=1
+TARGET=ampere_hightemp_start@1.service
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_hightemp_stop b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_hightemp_stop
new file mode 100644
index 0000000000..f1b4cc12be
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_hightemp_stop
@@ -0,0 +1,4 @@
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=216
+POLARITY=0
+TARGET=ampere_hightemp_start@1.service
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_overtemp b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_overtemp
new file mode 100644
index 0000000000..c7bb8c1bc4
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/tempevent-monitor/obmc/gpio/S1_overtemp
@@ -0,0 +1,4 @@
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=206
+POLARITY=1
+TARGET=ampere_overtemp@1.service
diff --git a/meta-ampere/meta-jade/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-ampere/meta-jade/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
index 7b27a7edd9..23015afbb8 100644
--- a/meta-ampere/meta-jade/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
+++ b/meta-ampere/meta-jade/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -6,6 +6,7 @@ RDEPENDS:${PN}-extras:append:mtjade = " \
fault-monitor \
id-button \
psu-hotswap-reset \
+ tempevent-monitor \
"
RDEPENDS:${PN}-inventory:append:mtjade = " \