summaryrefslogtreecommitdiffstats
path: root/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor
diff options
context:
space:
mode:
authorLei YU <mine260309@gmail.com>2016-12-22 16:15:03 +0800
committerPatrick Williams <patrick@stwcx.xyz>2017-01-11 21:37:46 +0000
commitfdc0491d6e3775e89d1cc7e1ef57182f854f840d (patch)
tree7d529ed75d58e0c7e337c06cc1de9f0da6947b81 /meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor
parent1d27150396622d6add98811999559ed0341c5b2b (diff)
downloadtalos-openbmc-fdc0491d6e3775e89d1cc7e1ef57182f854f840d.tar.gz
talos-openbmc-fdc0491d6e3775e89d1cc7e1ef57182f854f840d.zip
meta-romulus: Add CPLD workaround
Romulus power on scripts requires a workaround to trigger CPLD to give pgood signal after vcs_workaround. Add this as cpld_trigger service that runs after vcs_workaround and before obmc-host-start-pre. Change-Id: I0723bad38a5832f0bb2a8776129885308a8e644a Signed-off-by: Lei YU <mine260309@gmail.com>
Diffstat (limited to 'meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor')
-rw-r--r--meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger.bb28
-rw-r--r--meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger/cpld_trigger.sh4
-rw-r--r--meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger/cpld_trigger@.service15
3 files changed, 47 insertions, 0 deletions
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger.bb b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger.bb
new file mode 100644
index 000000000..4fb9e2090
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Romulus CPLD Trigger"
+DESCRIPTION = "Romulus power on workaround to trigger CPLD to continue power sequence"
+PR = "r0"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+RDEPENDS_${PN} += "obmc-pydevtools"
+
+PROVIDES += 'virtual/p9-vcs-workaround'
+RPROVIDES_${PN} += 'virtual-p9-vcs-workaround'
+
+S = "${WORKDIR}"
+SRC_URI += "file://cpld_trigger.sh"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/cpld_trigger.sh ${D}${bindir}/cpld_trigger.sh
+}
+
+TMPL = "cpld_trigger@.service"
+INSTFMT = "cpld_trigger@{0}.service"
+TGTFMT = "obmc-chassis-start@{0}.target"
+FMT = "../${TMPL}:${TGTFMT}.wants/${INSTFMT}"
+
+SYSTEMD_SERVICE_${PN} += "${TMPL}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}"
+
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger/cpld_trigger.sh b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger/cpld_trigger.sh
new file mode 100644
index 000000000..9c7bf9a84
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger/cpld_trigger.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Trigger CPLD to give pgood signal
+gpioutil -p S7 -d out -v 0
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger/cpld_trigger@.service b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger/cpld_trigger@.service
new file mode 100644
index 000000000..e96141891
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/chassis/cpld-trigger/cpld_trigger@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Trigger CPLD to give pgood
+Wants=vcs_workaround@%i.service
+After=vcs_workaround@%i.service
+Wants=obmc-host-start-pre@%i.target
+Before=obmc-host-start-pre@%i.target
+Conflicts=obmc-chassis-stop@%i.target
+
+[Service]
+ExecStart={bindir}/cpld_trigger.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-start@%i.target
OpenPOWER on IntegriCloud