-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Automatic fw upgrade for mlnx platform (#31)
* Automatic fw upgrade for mlnx platform Implement script for firmware upgrade to required version Add firmware binary and script to ops-syncd-mlnx container Add pciutils and usbutils to sonic-generic.bin * Update firmware installation message It is possible to do both upgrade and downgrade Change "Upgrading" to "Installing compatible version" Signed-off-by: marian-pritsak <marianp@mellanox.com>
- Loading branch information
1 parent
ca34abc
commit 1a0ab85
Showing
5 changed files
with
65 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
#!/bin/bash | ||
|
||
query_retry_count_max="10" | ||
required_fw_version="13.1130.0010" | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters