summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json8
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-assert-log@.service7
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-assert-log@.timer7
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-deassert-log@.service10
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-event-logger58
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend17
6 files changed, 101 insertions, 6 deletions
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json
index 27a0ec47a2..3ae18801e9 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json
@@ -256,9 +256,13 @@
"Name": "health-mmc",
"ChipId": "5",
"GpioNum": 7,
- "EventMon": "RISING",
+ "EventMon": "BOTH",
"Targets": {
- "RISING": ["mmc-recovery.service"]
+ "RISING": [
+ "mmc-recovery.service",
+ "smc-deassert-log@5_health-mmc.service"],
+ "FALLING": [
+ "smc-assert-log@5_health-mmc.timer"]
},
"Continue": true
}
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-assert-log@.service b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-assert-log@.service
new file mode 100644
index 0000000000..7d389f5f00
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-assert-log@.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=%i SMC Assert
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-gpio-monitor/smc-event-logger "assert" "%i"
+SyslogIdentifier=%i-smc-assert
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-assert-log@.timer b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-assert-log@.timer
new file mode 100644
index 0000000000..8ccb445c0d
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-assert-log@.timer
@@ -0,0 +1,7 @@
+[Unit]
+Description=Timer to trigger SMC ready
+[Timer]
+OnActiveSec=5s
+Unit=smc-assert-log@%i.service
+[Install]
+WantedBy=timers.target
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-deassert-log@.service b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-deassert-log@.service
new file mode 100644
index 0000000000..c4626b90ba
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-deassert-log@.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=%i SMC Deassert
+
+[Service]
+Type=oneshot
+ExecStartPre=/bin/systemctl stop smc-assert-log@%i.timer
+ExecStart=/usr/libexec/phosphor-gpio-monitor/smc-event-logger "deassert" "%i"
+SyslogIdentifier=%i-smc-deassert
+
+Conflicts=smc-assert-log@%i.timer
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-event-logger b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-event-logger
new file mode 100644
index 0000000000..f509614e21
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/smc-event-logger
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+# shellcheck source=meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/logging-util
+source /usr/libexec/phosphor-gpio-monitor/logging-util
+
+HELP="
+Usage: smc-event-logger <event> <id_gpio-name>
+<event> is the power rail event to log,
+e.g. assert / deassert.
+
+<id_gpio-name> is defined in json file,
+e.g. 5_health-mmc
+"
+
+# get assert or deassert message
+if [ "$1" == "assert" ]; then
+ action="SMCFailed"
+elif [ "$1" == "deassert" ]; then
+ action="SMCRestored"
+fi
+
+# get gpio chip ID
+MESSAGE=$2
+number="${MESSAGE%%_*}"
+
+# remove prefix from 0_xxxxxx to xxxxxx
+GPIO_NAME="${MESSAGE#*_}"
+
+MSG_ID="xyz.openbmc_project.State.SMC.$action"
+DEVICE_PATH="/xyz/openbmc_project/inventory/system/board/Minerva_Aegis/smc0"
+STASH_FILE="/run/$GPIO_NAME.log_entry"
+
+if gpio_logging_valid "$number" "$1" ; then
+ case $1 in
+ "-h")
+ echo "$HELP"
+ ;;
+
+ "assert")
+ if [ ! -s "$STASH_FILE" ]; then
+ /usr/bin/log-create "$MSG_ID" --json \
+ "{ \"IDENTIFIER\": \"${DEVICE_PATH}\", \"FAILURE_TYPE\": \"${GPIO_NAME}\"}" \
+ > "${STASH_FILE}"
+ fi
+ ;;
+
+ "deassert")
+ if [ -s "${STASH_FILE}" ]; then
+ log-resolve -p "$(< "${STASH_FILE}")"
+ rm "${STASH_FILE}"
+ fi
+ /usr/bin/log-create "$MSG_ID" --json \
+ "{ \"IDENTIFIER\": \"${DEVICE_PATH}\"}"
+ ;;
+ esac
+fi
+
+exit 0
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
index 42a33f8554..b2d5d490bb 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
@@ -40,6 +40,10 @@ SRC_URI += "file://assert-post-end \
file://power-rail-event-logger \
file://prochot-assert-log.service \
file://prochot-deassert-log.service \
+ file://smc-assert-log@.service \
+ file://smc-assert-log@.timer \
+ file://smc-deassert-log@.service \
+ file://smc-event-logger \
file://thermtrip-assert-log.service \
file://thermtrip-deassert-log.service \
file://thermal-event-logger \
@@ -60,14 +64,17 @@ SYSTEMD_SERVICE:${PN} += " \
deassert-post-end.service \
deassert-reset-button.service \
deassert-uart-switch-button.service \
- mmc-recovery.service \
- multi-gpios-sys-init.service \
device-reinitial@.service \
fan-reload.service \
- thermtrip-assert-log.service \
- thermtrip-deassert-log.service \
+ mmc-recovery.service \
+ multi-gpios-sys-init.service \
prochot-assert-log.service \
prochot-deassert-log.service \
+ smc-assert-log@.service \
+ smc-assert-log@.timer \
+ smc-deassert-log@.service \
+ thermtrip-assert-log.service \
+ thermtrip-deassert-log.service \
"
do_install:append() {
@@ -82,10 +89,12 @@ do_install:append() {
install -d ${D}${systemd_system_unitdir}/
install -m 0644 ${UNPACKDIR}/*.service ${D}${systemd_system_unitdir}/
+ install -m 0644 ${UNPACKDIR}/*.timer ${D}${systemd_system_unitdir}
install -d ${D}${libexecdir}/${PN}
install -m 0755 ${UNPACKDIR}/gpios-event-logger ${D}${libexecdir}/${PN}/
install -m 0755 ${UNPACKDIR}/power-rail-event-logger ${D}${libexecdir}/${PN}/
+ install -m 0755 ${UNPACKDIR}/smc-event-logger ${D}${libexecdir}/${PN}/
install -m 0755 ${UNPACKDIR}/thermal-event-logger ${D}${libexecdir}/${PN}/
install -m 0755 ${UNPACKDIR}/vr-fault-event-logger ${D}${libexecdir}/${PN}/