From c0dc3d36d09c8172223bcb680cbda08846a0bf0e Mon Sep 17 00:00:00 2001 From: Raptor Engineering Development Team Date: Wed, 12 Feb 2020 02:15:13 +0000 Subject: Save and restore BMC MAC address in U-Boot environment during BMC firmware updates --- .../recipes-bsp/u-boot/u-boot-fw-utils-aspeed_2016.07.bb | 5 +++++ .../recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_git.bb | 5 +++++ .../recipes-phosphor/initrdscripts/files/obmc-update.sh | 11 +++++++++++ .../recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bb | 12 +++++++++++- poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.01.bb | 5 +++++ 5 files changed, 37 insertions(+), 1 deletion(-) diff --git a/meta-aspeed/recipes-bsp/u-boot/u-boot-fw-utils-aspeed_2016.07.bb b/meta-aspeed/recipes-bsp/u-boot/u-boot-fw-utils-aspeed_2016.07.bb index e9f724df2..4c73670e6 100644 --- a/meta-aspeed/recipes-bsp/u-boot/u-boot-fw-utils-aspeed_2016.07.bb +++ b/meta-aspeed/recipes-bsp/u-boot/u-boot-fw-utils-aspeed_2016.07.bb @@ -28,6 +28,11 @@ do_install () { install -d ${D}${sysconfdir} install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config install -m 644 ${WORKDIR}/alt_fw_env.config ${D}${sysconfdir}/alt_fw_env.config + + install -d ${STAGING_DIR}/bin + install -m 755 ${S}/tools/env/fw_printenv ${STAGING_DIR}/bin/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${STAGING_DIR}/bin/fw_setenv + install -m 644 ${WORKDIR}/fw_env.config ${STAGING_DIR}/fw_env.config } do_install_class-cross () { diff --git a/meta-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_git.bb b/meta-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_git.bb index 42bc7a306..71e7a9d2a 100644 --- a/meta-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_git.bb +++ b/meta-nuvoton/recipes-bsp/u-boot/u-boot-fw-utils-nuvoton_git.bb @@ -23,6 +23,11 @@ do_install () { install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_setenv install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config + + install -d ${STAGING_DIR}/bin + install -m 755 ${S}/tools/env/fw_printenv ${STAGING_DIR}/bin/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${STAGING_DIR}/bin/fw_setenv + install -m 644 ${WORKDIR}/fw_env.config ${STAGING_DIR}/fw_env.config } do_install_class-cross () { diff --git a/meta-phosphor/recipes-phosphor/initrdscripts/files/obmc-update.sh b/meta-phosphor/recipes-phosphor/initrdscripts/files/obmc-update.sh index 278cd41d7..efe47cfe8 100755 --- a/meta-phosphor/recipes-phosphor/initrdscripts/files/obmc-update.sh +++ b/meta-phosphor/recipes-phosphor/initrdscripts/files/obmc-update.sh @@ -232,6 +232,11 @@ done if test -n "$doflash" then + mkdir -p /var/lock + + BMC_MAC_ADDRESS=$(fw_printenv -n ethaddr) + echo "Detected RCS BMC MAC address $BMC_MAC_ADDRESS" + for f in $imglist do if test ! -s $f @@ -244,6 +249,12 @@ then echo "Updating ${f#$image}..." flashcp -v $f /dev/$m && rm $f done + + echo "Restoring RCS BMC MAC address..." + fw_setenv ethaddr $BMC_MAC_ADDRESS + fw_setenv eth1addr $BMC_MAC_ADDRESS + fw_setenv rptaddr + fw_setenv rpt1addr fi if test -d $save -a "x$toram" = xy diff --git a/meta-phosphor/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bb b/meta-phosphor/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bb index ab2c38e90..da03cc7f9 100644 --- a/meta-phosphor/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bb +++ b/meta-phosphor/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bb @@ -5,7 +5,10 @@ LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d71 PR = "r1" -inherit allarch +INSANE_SKIP_${PN} += "already-stripped" + +DEPENDS += "${@d.getVar('PREFERRED_PROVIDER_u-boot', True) or 'u-boot'}" +DEPENDS += "${@d.getVar('PREFERRED_PROVIDER_u-boot-fw-utils', True) or 'u-boot-fw-utils'}" RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_base-utils}" @@ -29,7 +32,14 @@ do_install() { install -m 0644 ${WORKDIR}/whitelist ${D}/whitelist install -d ${D}/dev mknod -m 622 ${D}/dev/console c 5 1 + + install -d ${D}/etc + install -m 0644 ${STAGING_DIR}/fw_env.config ${D}/etc/fw_env.config + install -d ${D}/bin + install -m 0755 ${STAGING_DIR}/bin/fw_printenv ${D}/bin/fw_printenv + install -m 0755 ${STAGING_DIR}/bin/fw_setenv ${D}/bin/fw_setenv } FILES_${PN} += " /init /shutdown /update /whitelist /dev " FILES_${PN} += " /init-options /init-download-url " +FILES_${PN} += " /bin/fw_printenv /bin/fw_setenv " diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.01.bb b/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.01.bb index b5ce56847..0ba983072 100644 --- a/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.01.bb +++ b/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.01.bb @@ -20,6 +20,11 @@ do_install () { install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_setenv install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config + + install -d ${STAGING_DIR}/bin + install -m 755 ${S}/tools/env/fw_printenv ${STAGING_DIR}/bin/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${STAGING_DIR}/bin/fw_setenv + install -m 644 ${WORKDIR}/fw_env.config ${STAGING_DIR}/fw_env.config } do_install_class-cross () { -- cgit v1.2.1