diff options
Diffstat (limited to 'meta-ampere/meta-common/recipes-ampere/platform/ampere-utils/ampere_update_mac.sh')
-rw-r--r-- | meta-ampere/meta-common/recipes-ampere/platform/ampere-utils/ampere_update_mac.sh | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/meta-ampere/meta-common/recipes-ampere/platform/ampere-utils/ampere_update_mac.sh b/meta-ampere/meta-common/recipes-ampere/platform/ampere-utils/ampere_update_mac.sh deleted file mode 100644 index 6be938a866..0000000000 --- a/meta-ampere/meta-common/recipes-ampere/platform/ampere-utils/ampere_update_mac.sh +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/bash -# -# This script is used to get the BMC MAC Address from FRU EEPROM at Board Extra. -# and if the eth address is not exist on U-boot Enviroment, this script will update it. -# - -function Usage () { - echo "Usage:" - echo " ampere_update_mac.sh <ethX> <fru bus> <fru addr>" - echo "Example:" - echo " ampere_update_mac.sh eth1 3 80" -} - -function read_mac_address () { - fruBus=$1 - fruAddr=$2 - - if FRU_OBJECT_PATH=$(busctl tree xyz.openbmc_project.FruDevice | grep "/xyz/openbmc_project/FruDevice/" | tr -s '\n' ' ' | tr -d "|-" | tr -d '`') - then - IFS=' ' read -r -a FRU_OBJ_PATH_ARR <<< "$FRU_OBJECT_PATH" - - for fruObj in "${FRU_OBJ_PATH_ARR[@]}" - do - BUS_IDX_RW=$(busctl get-property xyz.openbmc_project.FruDevice "$fruObj" xyz.openbmc_project.FruDevice BUS) - BUS_ADDR_RW=$(busctl get-property xyz.openbmc_project.FruDevice "$fruObj" xyz.openbmc_project.FruDevice ADDRESS) - - if [ -z "$BUS_IDX_RW" ] || [ -z "$BUS_IDX_RW" ]; then - continue - else - BUS_IDX_CV=$(echo "$BUS_IDX_RW" | cut -d " " -f 2) - BUS_ADDR_CV=$(echo "$BUS_ADDR_RW" | cut -d " " -f 2) - if [ "$BUS_IDX_CV" != "$fruBus" ] || [ "$BUS_ADDR_CV" != "$fruAddr" ]; then - continue - fi - fi - - MAC_ADDR_RAW=$(busctl get-property xyz.openbmc_project.FruDevice "$fruObj" xyz.openbmc_project.FruDevice BOARD_INFO_AM1) - MAC_ADDR=$(echo "$MAC_ADDR_RAW" | cut -d "\"" -f 2) - break - done - fi - echo "$MAC_ADDR" -} - -ETHERNET_INTERFACE=$1 -BMC_FRU_BUS=$2 -BMC_FRU_ADDR=$3 - -if [ -z "$BMC_FRU_ADDR" ]; -then - Usage - exit -fi - -# Check eth port -case ${ETHERNET_INTERFACE} in - "eth0") - ENV_PORT="1" - ;; - "eth1") - ENV_PORT="2" - ;; - "eth2") - ENV_PORT="3" - ;; - *) - Usage - exit - ;; -esac - -# Read FRU Board Custom Field 1 to get the MAC address -for i in {1..10}; do - MAC_ADDR=$(read_mac_address "$BMC_FRU_BUS" "$BMC_FRU_ADDR") - - # Check if BMC MAC address is exported - if [ -z "${MAC_ADDR}" ]; then - sleep 2 - continue - fi - - if echo "$MAC_ADDR" | grep -q -vE "^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$" ; then - echo "ERROR: No valid BMC MAC Address detected from BMC FRU! $MAC_ADDR" - exit 0 - else - echo "mac-update: detect BMC MAC $MAC_ADDR at loop $i" - break - fi -done - -# Check if the Ethernet port has correct MAC Address -ETH_INCLUDE_MAC=$(ifconfig "${ETHERNET_INTERFACE}" | grep -i "$MAC_ADDR") -if [ -n "$ETH_INCLUDE_MAC" ]; then - echo "BMC MAC Address is already configured" - exit 0 -fi - -# Request to restart the service -ifconfig "${ETHERNET_INTERFACE}" down -fw_setenv bmc_macaddr "${MAC_ADDR}" - -ifconfig "${ETHERNET_INTERFACE}" hw ether "${MAC_ADDR}" -retval=$? -if [[ $retval -ne 0 ]]; then - echo "ERROR: Can not update MAC ADDR to ${ETHERNET_INTERFACE}" - exit 1 -fi -# Setting LAN MAC Address to xx:xx:xx:xx:xx:xx -ipmitool lan set "${ENV_PORT}" macaddr "${ETHERNET_INTERFACE}" -# Enableing BMC-generated ARP responses & Setting SNMP Community String to public -ipmitool lan set "${ENV_PORT}" arp respond on -ipmitool lan set "${ENV_PORT}" snmp public -ifconfig "${ETHERNET_INTERFACE}" up - -echo "Successfully update the MAC address ${MAC_ADDR} to ${ETHERNET_INTERFACE}" |