sonic-buildimage/platform/mellanox/docker-syncd-mlnx/mlnx-fw-upgrade.sh
Oleksandr Ivantsiv 96fe120265 [mlnx]: Add support of Mellanox SN2740 platform. (#786)
- Update SAI (added support of SN2740 profile).
- Update SDK to version 4.2.3130.
- Update FW to version 13.1224.0140.
- Update HW MGMT to version 1.0.0160.
2017-07-07 14:26:53 +03:00

54 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
query_retry_count_max="10"
required_fw_version="13.1224.0140"
fw_file=/etc/mlnx/fw-SPC.mfa
run_or_fail() {
$1
if [[ $? != 0 ]]; then
echo $1 failed
exit 1
fi
}
# wait until devices will be available
query_retry_count="0"
mlxfwmanager --query > /dev/null
while [[ (${query_retry_count} -lt ${query_retry_count_max}) && ($? -ne "0") ]]; do
sleep 1
query_retry_count=$[${query_retry_count}+1]
mlxfwmanager --query > /dev/null
done
run_or_fail "mlxfwmanager --query" > /tmp/mlnxfwmanager-query.txt
# get current firmware version
found_fw=false
for word in `cat /tmp/mlnxfwmanager-query.txt`
do
if [[ ${found_fw} == true ]]; then
fw_version=${word}
break
fi
if [[ ${word} == FW ]]; then
found_fw=true
fi
done
if [[ -z ${fw_version} ]]; then
echo "Could not retreive current FW version."
exit 1
fi
if [[ ${required_fw_version} == ${fw_version} ]]; then
echo "Mellanox firmware is up to date."
else
echo "Mellanox firmware required version is ${required_fw_version}. Installing compatible version..."
run_or_fail "mlxfwmanager -i ${fw_file} -u -f -y"
# exit from here so that syncd service will restart
exit 0
fi