From 9d5d2484a825538ce74a6460323a68e96338547f Mon Sep 17 00:00:00 2001 From: Delphine CC Chiu Date: Wed, 18 Oct 2023 18:39:21 +0800 Subject: yosemite4: phosphor-gpio-monitor: Support sled cycle from power button Summary: Support sled cycle from power button through gpio monitor, which detecting interrupt for bmc gpiop1 Tested: Do sled cycle after pressing power button: pass root@bmc:~# /usr/bin/phosphor-multi-gpio-monitor --config /usr/share/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json ... <6> GPIO Line 121 monitoring started ... [press power button over 4 second] <6> GPIO Line 121 Asserted Change-Id: I9197bfabff8b7e1f7a7370c0ff37219440df45b7 Signed-off-by: Delphine CC Chiu --- .../phosphor-gpio-monitor/set-button-sled.service | 7 +++++++ .../yosemite4-phosphor-multi-gpio-monitor.json | 12 ++++++++++++ .../gpio/phosphor-gpio-monitor_%.bbappend | 21 +++++++++++++++++++++ .../images/fb-yosemite4-phosphor-image.inc | 4 ++++ 4 files changed, 44 insertions(+) create mode 100644 meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/set-button-sled.service create mode 100644 meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json create mode 100644 meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/set-button-sled.service b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/set-button-sled.service new file mode 100644 index 0000000000..3a7d9ad2d8 --- /dev/null +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/set-button-sled.service @@ -0,0 +1,7 @@ +[Unit] +Description=Set Sled Cycle From Power Button + +[Service] +Type=oneshot +ExecStart=/usr/bin/busctl set-property xyz.openbmc_project.State.Chassis0 /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s "xyz.openbmc_project.State.Chassis.Transition.PowerCycle" +SyslogIdentifier=set-button-sled diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json new file mode 100644 index 0000000000..008eddd3d4 --- /dev/null +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json @@ -0,0 +1,12 @@ +[ + { + "Name": "BTN_BMC_R2_N", + "ChipId": "0", + "GpioNum": 121, + "EventMon": "RISING", + "Targets": { + "RISING": ["set-button-sled.service"] + }, + "Continue": true + } +] diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend new file mode 100644 index 0000000000..7580795d12 --- /dev/null +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend @@ -0,0 +1,21 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" + +inherit obmc-phosphor-systemd systemd + +SRC_URI += "file://yosemite4-phosphor-multi-gpio-monitor.json \ + file://set-button-sled.service \ + " + +FILES:${PN} += "${systemd_system_unitdir}/*" + +SYSTEMD_SERVICE:${PN} += " \ + set-button-sled.service \ + " +SYSTEMD_AUTO_ENABLE = "enable" + +do_install:append:() { + install -d ${D}${datadir}/phosphor-gpio-monitor + install -m 0644 ${WORKDIR}/yosemite4-phosphor-multi-gpio-monitor.json \ + ${D}${datadir}/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json + install -m 0644 ${WORKDIR}/set-button-sled.service ${D}${systemd_system_unitdir}/set-button-sled.service +} diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/images/fb-yosemite4-phosphor-image.inc b/meta-facebook/meta-yosemite4/recipes-phosphor/images/fb-yosemite4-phosphor-image.inc index 117118d473..79d109ca7c 100644 --- a/meta-facebook/meta-yosemite4/recipes-phosphor/images/fb-yosemite4-phosphor-image.inc +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/images/fb-yosemite4-phosphor-image.inc @@ -18,3 +18,7 @@ OBMC_IMAGE_EXTRA_INSTALL:append = " \ plat-svc \ " +OBMC_IMAGE_EXTRA_INSTALL:append = " \ + phosphor-gpio-monitor \ +" + -- cgit v1.2.3