summaryrefslogtreecommitdiff
path: root/meta-facebook
diff options
context:
space:
mode:
authorKumar Thangavel <thangavel.k@hcl.com>2022-10-10 19:23:14 +0300
committerPatrick Williams <patrick@stwcx.xyz>2022-12-15 20:44:36 +0300
commit3dd6c2255e5adf02e85c6eb1662993df02c545d2 (patch)
tree778214b26b9c23f3aabdf852a6b0fe811fb82292 /meta-facebook
parent14f3377ff2a359faa31c787b34c2c8163e73f1c2 (diff)
downloadopenbmc-3dd6c2255e5adf02e85c6eb1662993df02c545d2.tar.xz
meta-facebook: Add support for phosphor-gpio-monitor
Added phosphor-gpio-monitor support for facebook platforms to enable hot plug/unplug of host feature. TESTED : Verified hot plug/unplug of all hosts are enabled and tested in Facebook YosemiteV2 platform. Signed-off-by: Kumar Thangavel <thangavel.k@hcl.com> Change-Id: I7ff6647942cdc979c2a3dc6f4c85c1273785cf65
Diffstat (limited to 'meta-facebook')
-rw-r--r--meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/fb-compute-multihost/phosphor-multi-gpio-monitor.json30
-rw-r--r--meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/ipmb-rescan-fru.sh8
-rw-r--r--meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc-ipmb-rescan-fru.service6
-rw-r--r--meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend29
4 files changed, 73 insertions, 0 deletions
diff --git a/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/fb-compute-multihost/phosphor-multi-gpio-monitor.json b/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/fb-compute-multihost/phosphor-multi-gpio-monitor.json
new file mode 100644
index 0000000000..2499d66ff4
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/fb-compute-multihost/phosphor-multi-gpio-monitor.json
@@ -0,0 +1,30 @@
+[
+ {
+ "Name": "presence-slot1",
+ "LineName": "PRESENCE-SLOT1",
+ "EventMon": "BOTH",
+ "Continue": true,
+ "Target": "obmc-ipmb-rescan-fru.service"
+ },
+ {
+ "Name": "presence-slot2",
+ "LineName": "PRESENCE-SLOT2",
+ "EventMon": "BOTH",
+ "Continue": true,
+ "Target": "obmc-ipmb-rescan-fru.service"
+ },
+ {
+ "Name": "presence-slot3",
+ "LineName": "PRESENCE-SLOT3",
+ "EventMon": "BOTH",
+ "Continue": true,
+ "Target": "obmc-ipmb-rescan-fru.service"
+ },
+ {
+ "Name": "presence-slot4",
+ "LineName": "PRESENCE-SLOT4",
+ "EventMon": "BOTH",
+ "Continue": true,
+ "Target": "obmc-ipmb-rescan-fru.service"
+ }
+]
diff --git a/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/ipmb-rescan-fru.sh b/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/ipmb-rescan-fru.sh
new file mode 100644
index 0000000000..cee0eacf9e
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/ipmb-rescan-fru.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+# Rescan the ipmb busses for slots fru.
+
+DBUS_SERVICE="xyz.openbmc_project.Ipmb.FruDevice"
+DBUS_OBJECT="/xyz/openbmc_project/Ipmb/FruDevice"
+DBUS_INTERFACE="xyz.openbmc_project.Ipmb.FruDeviceManager"
+
+busctl call $DBUS_SERVICE $DBUS_OBJECT $DBUS_INTERFACE ReScan
diff --git a/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc-ipmb-rescan-fru.service b/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc-ipmb-rescan-fru.service
new file mode 100644
index 0000000000..4c71b03ae8
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc-ipmb-rescan-fru.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=ipmb based rescan the slots fru service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-gpio-monitor/ipmb-rescan-fru.sh
diff --git a/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
new file mode 100644
index 0000000000..e64313e93e
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
@@ -0,0 +1,29 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+SRC_URI:append:fb-compute-multihost = " file://phosphor-multi-gpio-monitor.json"
+SRC_URI:append:fb-compute-multihost = " file://obmc-ipmb-rescan-fru.service"
+SRC_URI:append:fb-compute-multihost = " file://ipmb-rescan-fru.sh"
+
+RDEPENDS:${PN} += "bash"
+
+SYSTEMD_SERVICE:${PN}-monitor += "phosphor-multi-gpio-monitor.service"
+SYSTEMD_SERVICE:${PN} += "obmc-ipmb-rescan-fru.service"
+
+SYSTEMD_LINK:${PN}-monitor:append = " ../phosphor-multi-gpio-monitor.service:multi-user.target.requires/phosphor-multi-gpio-monitor.service"
+
+GPIO_HOST_TEMPLATES:append = " ${WORKDIR}/phosphor-multi-gpio-monitor.json"
+
+do_install:append:fb-compute-multihost() {
+
+ install -d ${D}/usr/share/phosphor-gpio-monitor
+ install -m 0644 ${WORKDIR}/phosphor-multi-gpio-monitor.json \
+ ${D}/usr/share/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/obmc-ipmb-rescan-fru.service \
+ ${D}${systemd_system_unitdir}
+
+ install -d ${D}/usr/libexec/phosphor-gpio-monitor
+ install -m 0777 ${WORKDIR}/ipmb-rescan-fru.sh ${D}/usr/libexec/phosphor-gpio-monitor/
+}
+FILES:${PN} += "/lib/systemd/system/obmc-ipmb-rescan-fru.service"