From 9371ada400c6a85bbd26f6c3d5545284a4d71fbe Mon Sep 17 00:00:00 2001 From: Raptor Engineering Development Team Date: Tue, 5 Jun 2018 13:26:01 -0500 Subject: Don't attempt to control AVSBus regulators on CPU socket 1 when CPU 1 is not installed --- .../chassis/avsbus-control/avsbus-disable.sh | 32 +++++++++++++++++----- .../chassis/avsbus-control/avsbus-enable.sh | 32 +++++++++++++++++----- .../chassis/avsbus-control/avsbus-workaround.sh | 22 +++++++++++++-- .../recipes-phosphor/chassis/vrm-control/vrm.sh | 21 +++++++++++++- 4 files changed, 89 insertions(+), 18 deletions(-) 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 index 1c3600088..7ee4dfcd1 100644 --- 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 @@ -1,5 +1,20 @@ #!/bin/sh +# Get CPU count +CPU_COUNT=1 +STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +if [ $? != 0 ]; then + STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +fi +if [ $? != 0 ]; then + STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +fi +CPU_PRESENT_FLAG_N=$(( ${STATUS_FLAGS} & 0x20 )) +if [ $CPU_PRESENT_FLAG_N != 0 ]; then + CPU_COUNT=$(( ${CPU_COUNT} + 1 )) +fi +echo "Found $CPU_COUNT CPU(s)" + 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 @@ -7,10 +22,13 @@ 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 + +if [ $CPU_COUNT -gt 1 ]; then + 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 +fi 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 index 98e585cc2..2621c9e24 100644 --- 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 @@ -1,5 +1,20 @@ #!/bin/sh +# Get CPU count +CPU_COUNT=1 +STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +if [ $? != 0 ]; then + STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +fi +if [ $? != 0 ]; then + STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +fi +CPU_PRESENT_FLAG_N=$(( ${STATUS_FLAGS} & 0x20 )) +if [ $CPU_PRESENT_FLAG_N != 0 ]; then + CPU_COUNT=$(( ${CPU_COUNT} + 1 )) +fi +echo "Found $CPU_COUNT CPU(s)" + 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 @@ -7,10 +22,13 @@ 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 + +if [ $CPU_COUNT -gt 1 ]; then + 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 +fi 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 index 75ec8caed..882f1637c 100644 --- 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 @@ -1,7 +1,23 @@ #!/bin/sh +# Get CPU count +CPU_COUNT=1 +STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +if [ $? != 0 ]; then + STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +fi +if [ $? != 0 ]; then + STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +fi +CPU_PRESENT_FLAG_N=$(( ${STATUS_FLAGS} & 0x20 )) +if [ $CPU_PRESENT_FLAG_N != 0 ]; then + CPU_COUNT=$(( ${CPU_COUNT} + 1 )) +fi +echo "Found $CPU_COUNT CPU(s)" + 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 - +if [ $CPU_COUNT -gt 1 ]; then + i2cset -y 5 0x28 0x2E 0x23 b # VDD/VCS 1 + i2cset -y 5 0x2B 0x2E 0x23 b # VDN 1 +fi 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 index 78329e3d7..86d5f1dd6 100644 --- 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 @@ -1,3 +1,22 @@ #!/bin/sh -vrm-control.sh vdna=1.0 vdnb=1.0 +# Get CPU count +CPU_COUNT=1 +STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +if [ $? != 0 ]; then + STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +fi +if [ $? != 0 ]; then + STATUS_FLAGS=$(i2cget -y 12 0x31 0x7) +fi +CPU_PRESENT_FLAG_N=$(( ${STATUS_FLAGS} & 0x20 )) +if [ $CPU_PRESENT_FLAG_N != 0 ]; then + CPU_COUNT=$(( ${CPU_COUNT} + 1 )) +fi +echo "Found $CPU_COUNT CPU(s)" + +if [ $CPU_COUNT -gt 1 ]; then + vrm-control.sh vdna=1.0 vdnb=1.0 +else + vrm-control.sh vdna=1.0 +fi -- cgit v1.2.1