From d978c32c464d8cc1d6ec7980135aea475e438a2a Mon Sep 17 00:00:00 2001 From: Vijay Khemka Date: Fri, 12 Jun 2020 14:30:49 -0700 Subject: meta-facebook: move flash path flash feature was included earlier for bios upgrade but by mistake it added a new directory structure meta-facebook under meta-facebook. So corrected this here. (From meta-facebook rev: 515339cf26a50d544156bdff80e754ff0bead63f) Change-Id: I67fd0b2f06cdd95e13aefb56b87bd89fb0a8e429 Signed-off-by: Vijay Khemka Signed-off-by: Andrew Geissler --- .../flash/phosphor-software-manager/bios-update.sh | 142 --------------------- .../obmc-flash-host-bios@.service | 7 - .../flash/phosphor-software-manager_%.bbappend | 10 -- .../flash/phosphor-software-manager/bios-update.sh | 142 +++++++++++++++++++++ .../obmc-flash-host-bios@.service | 7 + .../flash/phosphor-software-manager_%.bbappend | 10 ++ 6 files changed, 159 insertions(+), 159 deletions(-) delete mode 100755 meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh delete mode 100644 meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service delete mode 100644 meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager_%.bbappend create mode 100755 meta-facebook/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh create mode 100644 meta-facebook/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service create mode 100644 meta-facebook/recipes-phosphor/flash/phosphor-software-manager_%.bbappend diff --git a/meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh b/meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh deleted file mode 100755 index fd1c52b2a..000000000 --- a/meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/bash - -set -e - -POWER_CMD="/usr/sbin/power-util mb" -IMAGE_FILE=$1/bios.bin -GPIO=389 - -IPMB_OBJ="xyz.openbmc_project.Ipmi.Channel.Ipmb" -IPMB_PATH="/xyz/openbmc_project/Ipmi/Channel/Ipmb" -IPMB_INTF="org.openbmc.Ipmb" -IPMB_CALL="sendRequest yyyyay" -ME_CMD_RECOVER="1 0x2e 0 0xdf 4 0x57 0x01 0x00 0x01" -ME_CMD_RESET="1 6 0 0x2 0" -SPI_DEV="1e630000.spi" -SPI_PATH="/sys/bus/platform/drivers/aspeed-smc" - -set_gpio_to_bmc() -{ - echo "switch bios GPIO to bmc" - if [ ! -d /sys/class/gpio/gpio$GPIO ]; then - cd /sys/class/gpio - echo $GPIO > export - cd gpio$GPIO - else - cd /sys/class/gpio/gpio$GPIO - fi - direc=`cat direction` - if [ $direc == "in" ]; then - echo "out" > direction - fi - data=`cat value` - if [ "$data" == "0" ]; then - echo 1 > value - fi - return 0 -} - -set_gpio_to_pch() -{ - echo "switch bios GPIO to pch" - if [ ! -d /sys/class/gpio/gpio$GPIO ]; then - cd /sys/class/gpio - echo $GPIO > export - cd gpio$GPIO - else - cd /sys/class/gpio/gpio$GPIO - fi - direc=`cat direction` - if [ $direc == "in" ]; then - echo "out" > direction - fi - data=`cat value` - if [ "$data" == "1" ]; then - echo 0 > value - fi - echo "in" > direction - echo $GPIO > /sys/class/gpio/unexport - return 0 -} - -echo "Bios upgrade started at $(date)" - -#Power off host server. -echo "Power off host server" -$POWER_CMD off -sleep 15 -if [ $($POWER_CMD status) != "off" ]; -then - echo "Host server didn't power off" - echo "Bios upgrade failed" - exit -1 -fi -echo "Host server powered off" - -#Set ME to recovery mode -echo "Set ME to recovery mode" -busctl call $IPMB_OBJ $IPMB_PATH $IPMB_INTF $IPMB_CALL $ME_CMD_RECOVER -sleep 5 - -#Flip GPIO to access SPI flash used by host. -echo "Set GPIO $GPIO to access SPI flash from BMC used by host" -set_gpio_to_bmc - -#Bind spi driver to access flash -echo "bind aspeed-smc spi driver" -echo -n $SPI_DEV > $SPI_PATH/bind -sleep 1 - -#Flashcp image to device. -if [ -e "$IMAGE_FILE" ]; -then - echo "Bios image is $IMAGE_FILE" - for d in mtd6 mtd7 ; do - if [ -e "/dev/$d" ]; then - mtd=`cat /sys/class/mtd/$d/name` - if [ $mtd == "pnor" ]; then - echo "Flashing bios image to $d..." - flashcp -v $IMAGE_FILE /dev/$d - if [ $? -eq 0 ]; then - echo "bios updated successfully..." - else - echo "bios update failed..." - fi - break - fi - echo "$d is not a pnor device" - fi - echo "$d not available" - done -else - echo "Bios image $IMAGE_FILE doesn't exist" -fi - -#Unbind spi driver -sleep 1 -echo "Unbind aspeed-smc spi driver" -echo -n $SPI_DEV > $SPI_PATH/unbind -sleep 10 - -#Flip GPIO back for host to access SPI flash -echo "Set GPIO $GPIO back for host to access SPI flash" -set_gpio_to_pch -sleep 5 - -#Reset ME to boot from new bios -echo "Reset ME to boot from new bios" -busctl call $IPMB_OBJ $IPMB_PATH $IPMB_INTF $IPMB_CALL $ME_CMD_RESET -sleep 10 - -#Power on server -echo "Power on server" -$POWER_CMD on -sleep 5 - -# Retry to power on once again if server didn't powered on -if [ $($POWER_CMD status) != "on" ]; -then - sleep 5 - echo "Powering on server again" - $POWER_CMD on -fi diff --git a/meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service b/meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service deleted file mode 100644 index 7e098908e..000000000 --- a/meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Flash Host Bios image %I to Host - -[Service] -Type=oneshot -RemainAfterExit=no -ExecStart=/usr/sbin/bios-update.sh /tmp/images/%i diff --git a/meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager_%.bbappend b/meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager_%.bbappend deleted file mode 100644 index b2160acde..000000000 --- a/meta-facebook/meta-facebook/meta-tiogapass/recipes-phosphor/flash/phosphor-software-manager_%.bbappend +++ /dev/null @@ -1,10 +0,0 @@ -FILESEXTRAPATHS_prepend_tiogapass := "${THISDIR}/${PN}:" -SRC_URI += "file://bios-update.sh" - -PACKAGECONFIG_append = " flash_bios" -RDEPENDS_${PN} += "bash" - -do_install_append_tiogapass() { - install -d ${D}/${sbindir} - install -m 0755 ${WORKDIR}/bios-update.sh ${D}/${sbindir}/ -} diff --git a/meta-facebook/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh b/meta-facebook/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh new file mode 100755 index 000000000..fd1c52b2a --- /dev/null +++ b/meta-facebook/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh @@ -0,0 +1,142 @@ +#!/bin/bash + +set -e + +POWER_CMD="/usr/sbin/power-util mb" +IMAGE_FILE=$1/bios.bin +GPIO=389 + +IPMB_OBJ="xyz.openbmc_project.Ipmi.Channel.Ipmb" +IPMB_PATH="/xyz/openbmc_project/Ipmi/Channel/Ipmb" +IPMB_INTF="org.openbmc.Ipmb" +IPMB_CALL="sendRequest yyyyay" +ME_CMD_RECOVER="1 0x2e 0 0xdf 4 0x57 0x01 0x00 0x01" +ME_CMD_RESET="1 6 0 0x2 0" +SPI_DEV="1e630000.spi" +SPI_PATH="/sys/bus/platform/drivers/aspeed-smc" + +set_gpio_to_bmc() +{ + echo "switch bios GPIO to bmc" + if [ ! -d /sys/class/gpio/gpio$GPIO ]; then + cd /sys/class/gpio + echo $GPIO > export + cd gpio$GPIO + else + cd /sys/class/gpio/gpio$GPIO + fi + direc=`cat direction` + if [ $direc == "in" ]; then + echo "out" > direction + fi + data=`cat value` + if [ "$data" == "0" ]; then + echo 1 > value + fi + return 0 +} + +set_gpio_to_pch() +{ + echo "switch bios GPIO to pch" + if [ ! -d /sys/class/gpio/gpio$GPIO ]; then + cd /sys/class/gpio + echo $GPIO > export + cd gpio$GPIO + else + cd /sys/class/gpio/gpio$GPIO + fi + direc=`cat direction` + if [ $direc == "in" ]; then + echo "out" > direction + fi + data=`cat value` + if [ "$data" == "1" ]; then + echo 0 > value + fi + echo "in" > direction + echo $GPIO > /sys/class/gpio/unexport + return 0 +} + +echo "Bios upgrade started at $(date)" + +#Power off host server. +echo "Power off host server" +$POWER_CMD off +sleep 15 +if [ $($POWER_CMD status) != "off" ]; +then + echo "Host server didn't power off" + echo "Bios upgrade failed" + exit -1 +fi +echo "Host server powered off" + +#Set ME to recovery mode +echo "Set ME to recovery mode" +busctl call $IPMB_OBJ $IPMB_PATH $IPMB_INTF $IPMB_CALL $ME_CMD_RECOVER +sleep 5 + +#Flip GPIO to access SPI flash used by host. +echo "Set GPIO $GPIO to access SPI flash from BMC used by host" +set_gpio_to_bmc + +#Bind spi driver to access flash +echo "bind aspeed-smc spi driver" +echo -n $SPI_DEV > $SPI_PATH/bind +sleep 1 + +#Flashcp image to device. +if [ -e "$IMAGE_FILE" ]; +then + echo "Bios image is $IMAGE_FILE" + for d in mtd6 mtd7 ; do + if [ -e "/dev/$d" ]; then + mtd=`cat /sys/class/mtd/$d/name` + if [ $mtd == "pnor" ]; then + echo "Flashing bios image to $d..." + flashcp -v $IMAGE_FILE /dev/$d + if [ $? -eq 0 ]; then + echo "bios updated successfully..." + else + echo "bios update failed..." + fi + break + fi + echo "$d is not a pnor device" + fi + echo "$d not available" + done +else + echo "Bios image $IMAGE_FILE doesn't exist" +fi + +#Unbind spi driver +sleep 1 +echo "Unbind aspeed-smc spi driver" +echo -n $SPI_DEV > $SPI_PATH/unbind +sleep 10 + +#Flip GPIO back for host to access SPI flash +echo "Set GPIO $GPIO back for host to access SPI flash" +set_gpio_to_pch +sleep 5 + +#Reset ME to boot from new bios +echo "Reset ME to boot from new bios" +busctl call $IPMB_OBJ $IPMB_PATH $IPMB_INTF $IPMB_CALL $ME_CMD_RESET +sleep 10 + +#Power on server +echo "Power on server" +$POWER_CMD on +sleep 5 + +# Retry to power on once again if server didn't powered on +if [ $($POWER_CMD status) != "on" ]; +then + sleep 5 + echo "Powering on server again" + $POWER_CMD on +fi diff --git a/meta-facebook/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service b/meta-facebook/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service new file mode 100644 index 000000000..7e098908e --- /dev/null +++ b/meta-facebook/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service @@ -0,0 +1,7 @@ +[Unit] +Description=Flash Host Bios image %I to Host + +[Service] +Type=oneshot +RemainAfterExit=no +ExecStart=/usr/sbin/bios-update.sh /tmp/images/%i diff --git a/meta-facebook/recipes-phosphor/flash/phosphor-software-manager_%.bbappend b/meta-facebook/recipes-phosphor/flash/phosphor-software-manager_%.bbappend new file mode 100644 index 000000000..b2160acde --- /dev/null +++ b/meta-facebook/recipes-phosphor/flash/phosphor-software-manager_%.bbappend @@ -0,0 +1,10 @@ +FILESEXTRAPATHS_prepend_tiogapass := "${THISDIR}/${PN}:" +SRC_URI += "file://bios-update.sh" + +PACKAGECONFIG_append = " flash_bios" +RDEPENDS_${PN} += "bash" + +do_install_append_tiogapass() { + install -d ${D}/${sbindir} + install -m 0755 ${WORKDIR}/bios-update.sh ${D}/${sbindir}/ +} -- cgit v1.2.3