Skip to content

Commit d0c8e2d

Browse files
oleksandrivantsivmarian-pritsak
authored andcommitted
[mellanox]: Query required FW version from FW file. (#866)
This simplifies FW upgrade procedure and allows to specify required version only in one place (fw recipe).
1 parent e1f2a2d commit d0c8e2d

File tree

1 file changed

+16
-19
lines changed

1 file changed

+16
-19
lines changed

platform/mellanox/mlnx-fw-upgrade.sh

+16-19
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#!/bin/bash
22

33
query_retry_count_max="10"
4-
required_fw_version="13.1224.0140"
54
fw_file=/etc/mlnx/fw-SPC.mfa
65

76
run_or_fail() {
@@ -14,37 +13,35 @@ run_or_fail() {
1413

1514
# wait until devices will be available
1615
query_retry_count="0"
17-
mlxfwmanager --query > /dev/null
16+
query_cmd="mlxfwmanager --query -i ${fw_file}"
17+
${query_cmd} > /dev/null
1818

1919
while [[ (${query_retry_count} -lt ${query_retry_count_max}) && ($? -ne "0") ]]; do
2020
sleep 1
2121
query_retry_count=$[${query_retry_count}+1]
22-
mlxfwmanager --query > /dev/null
22+
${query_cmd} > /dev/null
2323
done
2424

25-
run_or_fail "mlxfwmanager --query" > /tmp/mlnxfwmanager-query.txt
25+
run_or_fail "${query_cmd}" > /tmp/mlnxfwmanager-query.txt
2626

27-
# get current firmware version
28-
found_fw=false
29-
for word in `cat /tmp/mlnxfwmanager-query.txt`
30-
do
31-
if [[ ${found_fw} == true ]]; then
32-
fw_version=${word}
33-
break
34-
fi
35-
if [[ ${word} == FW ]]; then
36-
found_fw=true
37-
fi
38-
done
27+
# get current firmware version and required version
28+
fw_info=$(grep FW /tmp/mlnxfwmanager-query.txt)
29+
fw_current=$(echo $fw_info | cut -f2 -d' ')
30+
fw_required=$(echo $fw_info | cut -f3 -d' ')
3931

40-
if [[ -z ${fw_version} ]]; then
32+
if [[ -z ${fw_current} ]]; then
4133
echo "Could not retreive current FW version."
4234
exit 1
4335
fi
4436

45-
if [[ ${required_fw_version} == ${fw_version} ]]; then
37+
if [[ -z ${fw_required} ]]; then
38+
echo "Could not retreive required FW version."
39+
exit 1
40+
fi
41+
42+
if [[ ${fw_current} == ${fw_required} ]]; then
4643
echo "Mellanox firmware is up to date."
4744
else
48-
echo "Mellanox firmware required version is ${required_fw_version}. Installing compatible version..."
45+
echo "Mellanox firmware required version is ${fw_required}. Installing compatible version..."
4946
run_or_fail "mlxfwmanager -i ${fw_file} -u -f -y"
5047
fi

0 commit comments

Comments
 (0)