summaryrefslogtreecommitdiff
path: root/meta-hpe
diff options
context:
space:
mode:
authorcharkear <charles.kearney@hpe.com>2022-10-27 21:30:47 +0300
committerCharles Kearney <charles.kearney@hpe.com>2023-02-08 22:08:23 +0300
commitfd67cd2477046e0c3d7290fcbe53745287534197 (patch)
tree9fa19c971656f9faea3e5b7f55df47a52461a9a2 /meta-hpe
parentba824da52c84f708293fbd90f9dbbd59ef4ac759 (diff)
downloadopenbmc-fd67cd2477046e0c3d7290fcbe53745287534197.tar.xz
meta-hpe: add missing gxp ehci owner reset recipe
Change-Id: I03f741a0e11cecd49028d78a740f1d9e8678f878 Signed-off-by: Charles Kearney <charles.kearney@hpe.com>
Diffstat (limited to 'meta-hpe')
-rw-r--r--meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset.bb44
-rw-r--r--meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/host-ehci-owner-reset@.service11
-rw-r--r--meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc05
-rw-r--r--meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc15
-rw-r--r--meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc25
-rw-r--r--meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/udc-reconnect.sh37
-rw-r--r--meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-hpe-apps.bb1
7 files changed, 108 insertions, 0 deletions
diff --git a/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset.bb b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset.bb
new file mode 100644
index 0000000000..b2335e1f93
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset.bb
@@ -0,0 +1,44 @@
+SUMMARY = "GXP EHCI Owner Reset"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${HPEBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit obmc-phosphor-systemd
+
+DEPENDS += "phosphor-gpio-monitor"
+RDEPENDS:${PN} += "phosphor-gpio-monitor-monitor"
+
+SYSTEMD_ENVIRONMENT_FILE:${PN} += "obmc/gpio/port_owner_udc0"
+SYSTEMD_ENVIRONMENT_FILE:${PN} += "obmc/gpio/port_owner_udc1"
+SYSTEMD_ENVIRONMENT_FILE:${PN} += "obmc/gpio/port_owner_udc2"
+
+UDC0_GPIO = "port_owner_udc0"
+UDC1_GPIO = "port_owner_udc1"
+UDC2_GPIO = "port_owner_udc2"
+TMPL_GPIO = "phosphor-gpio-monitor@.service"
+INSTFMT_GPIO = "phosphor-gpio-monitor@{0}.service"
+TGT_GPIO = "multi-user.target.requires"
+FMT_GPIO = "../${TMPL_GPIO}:${TGT_GPIO}/${INSTFMT_GPIO}"
+SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT_GPIO', 'UDC0_GPIO')}"
+SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT_GPIO', 'UDC1_GPIO')}"
+SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT_GPIO', 'UDC2_GPIO')}"
+
+UDC0_VEHCI = "udc0"
+UDC1_VEHCI = "udc1"
+UDC2_VEHCI = "udc2"
+TMPL_VEHCI = "host-ehci-owner-reset@.service"
+INSTFMT_VEHCI = "host-ehci-owner-reset@{0}.service"
+FMT_VEHCI = "${TMPL_VEHCI}:${INSTFMT_VEHCI}"
+SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT_VEHCI', 'UDC0_VEHCI')}"
+SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT_VEHCI', 'UDC1_VEHCI')}"
+SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT_VEHCI', 'UDC2_VEHCI')}"
+
+SYSTEMD_SERVICE:${PN} += "host-ehci-owner-reset@.service"
+
+SRC_URI += "file://udc-reconnect.sh"
+SRC_URI += "file://host-ehci-owner-reset@.service"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ${WORKDIR}/udc-reconnect.sh ${D}${bindir}
+}
diff --git a/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/host-ehci-owner-reset@.service b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/host-ehci-owner-reset@.service
new file mode 100644
index 0000000000..2a44b9f481
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/host-ehci-owner-reset@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=GXP EHCI Owner Reset Service
+Wants=start-ipkvm.service
+After=start-ipkvm.service
+StartLimitIntervalSec=0
+
+[Service]
+Type=oneshot
+ExecStart=/bin/sh -c "udc-reconnect.sh %i"
+SyslogIdentifier=host-ehci-owner-reset@%i
+
diff --git a/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc0 b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc0
new file mode 100644
index 0000000000..0e7b3687bb
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc0
@@ -0,0 +1,5 @@
+DEVPATH=/dev/input/by-path/platform-ahb@80000000:vuhc-event
+KEY=200
+POLARITY=1
+TARGET=host-ehci-owner-reset@udc0.service
+EXTRA_ARGS=--continue
diff --git a/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc1 b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc1
new file mode 100644
index 0000000000..48ac8f0e70
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc1
@@ -0,0 +1,5 @@
+DEVPATH=/dev/input/by-path/platform-ahb@80000000:vuhc-event
+KEY=201
+POLARITY=1
+TARGET=host-ehci-owner-reset@udc1.service
+EXTRA_ARGS=--continue
diff --git a/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc2 b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc2
new file mode 100644
index 0000000000..52d360b044
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/obmc/gpio/port_owner_udc2
@@ -0,0 +1,5 @@
+DEVPATH=/dev/input/by-path/platform-ahb@80000000:vuhc-event
+KEY=202
+POLARITY=1
+TARGET=host-ehci-owner-reset@udc2.service
+EXTRA_ARGS=--continue
diff --git a/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/udc-reconnect.sh b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/udc-reconnect.sh
new file mode 100644
index 0000000000..c90489d26e
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-hpe/vehci/host-ehci-owner-reset/udc-reconnect.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+if [ "$1" = "udc0" ]; then
+ function=$(cat /sys/class/udc/80401000.udc/function)
+ if [ "func-$function" != "func-" ]; then
+ echo "UDC0 owner is changed"
+ echo disconnect > /sys/class/udc/80401000.udc/soft_connect
+ sleep 3
+ echo connect > /sys/class/udc/80401000.udc/soft_connect
+ else
+ echo "UDC0 is not attached"
+ fi
+else
+ if [ "$1" = "udc1" ]; then
+ function=$(cat /sys/class/udc/80402000.udc/function)
+ if [ "func-$function" != "func-" ]; then
+ echo "UDC1 owner is changed"
+ echo disconnect > /sys/class/udc/80402000.udc/soft_connect
+ sleep 3
+ echo connect > /sys/class/udc/80402000.udc/soft_connect
+ else
+ echo "UDC1 is not attached"
+ fi
+ else
+ if [ "$1" = "udc2" ]; then
+ function=$(cat /sys/class/udc/80403000.udc/function)
+ if [ "func-$function" != "func-" ]; then
+ echo "UDC2 owner is changed"
+ echo disconnect > /sys/class/udc/80403000.udc/soft_connect
+ sleep 3
+ echo connect > /sys/class/udc/80403000.udc/soft_connect
+ else
+ echo "UDC2 is not attached"
+ fi
+ fi
+ fi
+fi
diff --git a/meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-hpe-apps.bb b/meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-hpe-apps.bb
index db77bbbf1e..5f711a29d4 100644
--- a/meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-hpe-apps.bb
+++ b/meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-hpe-apps.bb
@@ -44,4 +44,5 @@ RDEPENDS:${PN}-system = " \
webui-vue \
phosphor-ipmi-ipmb \
dbus-sensors \
+ host-ehci-owner-reset \
"