diff options
author | Raptor Engineering Development Team <support@raptorengineering.com> | 2017-12-31 05:46:13 -0600 |
---|---|---|
committer | Raptor Engineering Development Team <support@raptorengineering.com> | 2018-01-17 05:56:13 -0600 |
commit | 5b8113297ece720652a2924f8c2b9a59c34f6813 (patch) | |
tree | f23cb26179839acd63ccec3e2374406bba8b6fe0 /meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis | |
parent | f9a6d2d658d50df79787592ae73ace264e88d09a (diff) | |
download | talos-openbmc-5b8113297ece720652a2924f8c2b9a59c34f6813.tar.gz talos-openbmc-5b8113297ece720652a2924f8c2b9a59c34f6813.zip |
Copy Romulus files to Talos for future development
Apply initial renames and conversions to copied sources
Diffstat (limited to 'meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis')
16 files changed, 381 insertions, 0 deletions
diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control.bb b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control.bb new file mode 100644 index 000000000..e74682dba --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control.bb @@ -0,0 +1,40 @@ +SUMMARY = "Talos II AVSBus control" +PR = "r1" + +inherit obmc-phosphor-systemd +inherit obmc-phosphor-license + +RDEPENDS_${PN} += "i2c-tools bash" + +S = "${WORKDIR}" +SRC_URI += "file://avsbus-workaround.sh \ + file://avsbus-enable.sh \ + file://avsbus-disable.sh" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/avsbus-workaround.sh \ + ${D}${bindir}/avsbus-workaround.sh + install -m 0755 ${WORKDIR}/avsbus-disable.sh \ + ${D}${bindir}/avsbus-disable.sh + install -m 0755 ${WORKDIR}/avsbus-enable.sh \ + ${D}${bindir}/avsbus-enable.sh +} + +TMPL_EN= "avsbus-enable@.service" +TMPL_DIS= "avsbus-disable@.service" +TMPL_WA= "avsbus-workaround@.service" +INSTFMT_EN= "avsbus-enable@{0}.service" +INSTFMT_DIS= "avsbus-disable@{0}.service" +INSTFMT_WA= "avsbus-workaround@{0}.service" +TGTFMT = "obmc-chassis-poweron@{0}.target" +FMT_EN = "../${TMPL_EN}:${TGTFMT}.requires/${INSTFMT_EN}" +FMT_DIS = "../${TMPL_DIS}:${TGTFMT}.requires/${INSTFMT_DIS}" +FMT_WA = "../${TMPL_WA}:${TGTFMT}.requires/${INSTFMT_WA}" + +SYSTEMD_SERVICE_${PN} += "${TMPL_EN}" +SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_EN', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_SERVICE_${PN} += "${TMPL_DIS}" +SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_DIS', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_SERVICE_${PN} += "${TMPL_WA}" +SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_WA', 'OBMC_CHASSIS_INSTANCES')}" diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh new file mode 100644 index 000000000..1c3600088 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set +i2cset -y 4 0x70 0x01 0x80 b # VDD 0 +i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set +i2cset -y 4 0x70 0x01 0x80 b # VCS 0 +i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset +i2cset -y 4 0x73 0x00 0x00 b # VDN 0 - PAGE set +i2cset -y 4 0x73 0x01 0x80 b # VDN 0 +i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set +i2cset -y 5 0x70 0x01 0x80 b # VDD 1 +i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set +i2cset -y 5 0x70 0x01 0x80 b # VCS 1 +i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset +i2cset -y 5 0x73 0x00 0x00 b # VDN 1 - PAGE set +i2cset -y 5 0x73 0x01 0x80 b # VDN 1 diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service new file mode 100644 index 000000000..424aa2394 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service @@ -0,0 +1,16 @@ +[Unit] +Description=Disable the AVS bus on the VRMs +Wants=avsbus-workaround@%i.service +After=avsbus-workaround@%i.service +Before=vrm-control@%i.service +Conflicts=obmc-chassis-poweroff@%i.target +ConditionPathExists=!/run/openbmc/chassis@%i-on + +[Service] +ExecStart=/usr/bin/env avsbus-disable.sh +SyslogIdentifier=avsbus-disable.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweron@%i.target diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh new file mode 100644 index 000000000..98e585cc2 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set +i2cset -y 4 0x70 0x01 0xB0 b # VDD 0 +i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set +i2cset -y 4 0x70 0x01 0xB0 b # VCS 0 +i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset +i2cset -y 4 0x73 0x00 0x00 b # VDN 0 - PAGE set +i2cset -y 4 0x73 0x01 0xB0 b # VDN 0 +i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set +i2cset -y 5 0x70 0x01 0xB0 b # VDD 1 +i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set +i2cset -y 5 0x70 0x01 0xB0 b # VCS 1 +i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset +i2cset -y 5 0x73 0x00 0x00 b # VDN 1 - PAGE set +i2cset -y 5 0x73 0x01 0xB0 b # VDN 1 diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service new file mode 100644 index 000000000..b7fb41e24 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service @@ -0,0 +1,15 @@ +[Unit] +Description=Enable the AVS bus on VRMs +Wants=vrm-control@%i.service +After=vrm-control@%i.service +Conflicts=obmc-chassis-poweroff@%i.target +ConditionPathExists=!/run/openbmc/chassis@%i-on + +[Service] +ExecStart=/usr/bin/env avsbus-enable.sh +SyslogIdentifier=avsbus-enable.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweron@%i.target diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh new file mode 100644 index 000000000..75ec8caed --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +i2cset -y 4 0x28 0x2E 0x23 b # VDD/VCS 0 +i2cset -y 4 0x2B 0x2E 0x23 b # VDN 0 +i2cset -y 5 0x28 0x2E 0x23 b # VDD/VCS 1 +i2cset -y 5 0x2B 0x2E 0x23 b # VDN 1 + diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service new file mode 100644 index 000000000..156ef03c7 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service @@ -0,0 +1,16 @@ +[Unit] +Description=Perform AVS bus workaround on VRMs +Wants=op-power-start@.service +After=op-power-start@.service +Before=avsbus-disable@%i.service +Conflicts=obmc-chassis-poweroff@%i.target +ConditionPathExists=!/run/openbmc/chassis@%i-on + +[Service] +ExecStart=/usr/bin/env avsbus-workaround.sh +SyslogIdentifier=avsbus-workaround.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweron@%i.target diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger.bb b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger.bb new file mode 100644 index 000000000..caa0f5b75 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger.bb @@ -0,0 +1,36 @@ +SUMMARY = "Talos II FPGA Trigger" +DESCRIPTION = "Talos II power on workaround to trigger FPGA 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://fpga_trigger.sh \ + file://fpga_reset.sh" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/fpga_trigger.sh ${D}${bindir}/fpga_trigger.sh + install -m 0755 ${WORKDIR}/fpga_reset.sh ${D}${bindir}/fpga_reset.sh +} + +TMPL = "fpga_trigger@.service" +TMPL_RESET = "fpga_reset@.service" +INSTFMT = "fpga_trigger@{0}.service" +INSTFMT_RESET = "fpga_reset@{0}.service" +TGTFMT = "obmc-chassis-poweron@{0}.target" +TGTFMT_RESET = "obmc-chassis-poweroff@{0}.target" +FMT = "../${TMPL}:${TGTFMT}.requires/${INSTFMT}" +FMT_RESET = "../${TMPL_RESET}:${TGTFMT_RESET}.requires/${INSTFMT_RESET}" + +SYSTEMD_SERVICE_${PN} += "${TMPL}" +SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}" + +SYSTEMD_SERVICE_${PN} += "${TMPL_RESET}" +SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_RESET', 'OBMC_CHASSIS_INSTANCES')}" diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_reset.sh b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_reset.sh new file mode 100644 index 000000000..7cd6db730 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_reset.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# Reset FPGA +gpioutil -p S7 -d out -v 1 diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_reset@.service b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_reset@.service new file mode 100644 index 000000000..fbf01c0c7 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_reset@.service @@ -0,0 +1,14 @@ +[Unit] +Description=Reset FPGA to wait after VDD is powered up +Wants=op-wait-power-off@%i.service +After=op-wait-power-off@%i.service +Conflicts=obmc-chassis-poweron@%i.target + +[Service] +ExecStart=/usr/bin/env fpga_reset.sh +SyslogIdentifier=fpga_reset.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweroff@%i.target diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_trigger.sh b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_trigger.sh new file mode 100644 index 000000000..eb821caef --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_trigger.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# Trigger FPGA to give pgood signal +gpioutil -p S7 -d out -v 0 diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_trigger@.service b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_trigger@.service new file mode 100644 index 000000000..f949f175c --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/fpga-trigger/fpga_trigger@.service @@ -0,0 +1,16 @@ +[Unit] +Description=Trigger FPGA to give pgood +Wants=vcs_workaround@%i.service +Before=vcs_workaround@%i.service +Wants=obmc-host-start-pre@%i.target +Before=obmc-host-start-pre@%i.target +Conflicts=obmc-chassis-poweroff@%i.target + +[Service] +ExecStart=/usr/bin/env fpga_trigger.sh +SyslogIdentifier=fpga_trigger.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweron@%i.target diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control.bb b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control.bb new file mode 100644 index 000000000..e2eb9f3b9 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control.bb @@ -0,0 +1,26 @@ +SUMMARY = "Talos II VRM Overrides" +DESCRIPTION = "Sets Talos II VRMs to custom voltages" +PR = "r1" + +inherit obmc-phosphor-systemd +inherit obmc-phosphor-license + +RDEPENDS_${PN} += "i2c-tools bash" + +S = "${WORKDIR}" +SRC_URI += "file://vrm-control.sh \ + file://vrm.sh" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/vrm.sh ${D}${bindir}/vrm.sh + install -m 0755 ${WORKDIR}/vrm-control.sh ${D}${bindir}/vrm-control.sh +} + +TMPL = "vrm-control@.service" +INSTFMT = "vrm-control@{0}.service" +TGTFMT = "obmc-chassis-poweron@{0}.target" +FMT = "../${TMPL}:${TGTFMT}.requires/${INSTFMT}" + +SYSTEMD_SERVICE_${PN} += "${TMPL}" +SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}" diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control.sh b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control.sh new file mode 100644 index 000000000..be23d4691 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control.sh @@ -0,0 +1,137 @@ +#!/bin/bash +# ######################################################### +# Script to run on Talos II BMC to read/set vrm voltages + + +# ######################################################### +d2v () { +# usage: d2v <decimal volts> + +echo $1 | awk '{print $1 * 256 + .5}' | cut -d '.' -f 1 +} + + +# ######################################################### +v2d () { +# usage: v2d <hex val> + +printf " %0.3fV" `echo $1 | awk '{print $1 / 256}'` +} + + +# ######################################################### +i2d () { +# usage: i2d <hex val> <current divisor> + +# parse current mantisa and exponent +# format: SEEE ESMM MMMM MMMM +let e=$1/0x800 +let esign=e/0x10 +let m=$1\&0x07FF +let msign=m/0x0400 + +if [ $msign -eq 1 ] +then + # calc ones compliment + let m=($m^0x07FF)+1 + m="-$m" +fi +if [ $esign -eq 1 ] +then + # calc ones compliment + let e=(e^0x1F)+1 + e="-$e" +fi +printf " %0.3fA\n" `echo $m $e $2 | awk '{print ($1 * 2^$2) / $3}'` +} + + +# ######################################################### +rw_vc () { +# usage: rw_vc <bus> <addr> <current divisor> <channel> <value> + +# select channel +if [ $4 != "x" ] +then + i2cset -y $1 $2 0 $4 b +fi + +# write new voltage set point +if [ ! -e $5 ] +then + i2cset -y $1 $2 0x21 `d2v $5` w +fi + +# print voltage set point +v2d `i2cget -y $1 $2 0x21 w` + +# print voltage +v2d `i2cget -y $1 $2 0x8B w` + +# print current +i2d `i2cget -y $1 $2 0x8C w` $3 + +# default back to channel 0 +if [ $4 != "x" ] +then + i2cset -y $1 $2 0 0 b +fi +} + + +# ######################################################### +# Main + +if [ -e $1 ] +then + $0 vdda vcsa vdna vioa vddb vcsb vdnb viob + exit +fi + +if [ $1 == "-h" ] +then + echo " Usage: vrm [<rail>=[value] [<rail>=[value]] ...]" + echo " rail: vdda vcsa vdna vioa vddb vcsb vdnb viob" + echo " value: volts" + echo + echo " e.g., vrm vioa=1.0 viob=1.0" + echo + exit +fi + +echo "rail set read current" +echo "------- ------- ------- -------" +for param in ${@:1} +do + rail=`echo $param | cut -d'=' -f 1` + val=`echo ${param}= | cut -d'=' -f 2` + echo -n "$rail" + case "$rail" in + vdda) + rw_vc 4 0x70 2 0 $val + ;; + vddb) + rw_vc 5 0x70 2 0 $val + ;; + vcsa) + rw_vc 4 0x70 4 1 $val + ;; + vcsb) + rw_vc 5 0x70 4 1 $val + ;; + vdna) + rw_vc 4 0x73 2 0 $val + ;; + vdnb) + rw_vc 5 0x73 2 0 $val + ;; + vioa) + rw_vc 4 0x73 2 1 $val + ;; + viob) + rw_vc 5 0x73 2 1 $val + ;; + *) + echo " non-existant" + esac +done diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control@.service b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control@.service new file mode 100644 index 000000000..5d072ad5f --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control@.service @@ -0,0 +1,15 @@ +[Unit] +Description=Apply voltage overrides to VRMs +Wants=avsbus-disable@%i.service +After=avsbus-disable@%i.service +Before=avsbus-enable@%i.service +Conflicts=obmc-chassis-poweroff@%i.target + +[Service] +ExecStart=/usr/bin/env vrm.sh +SyslogIdentifier=vrm.sh +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=obmc-chassis-poweron@%i.target diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm.sh b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm.sh new file mode 100644 index 000000000..725e72f84 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +vrm-control.sh vdna=0.9 vdnb=0.9 |