blob: 081e3030f6111c383031b0b2764b05fb4be71d37 [file] [log] [blame]
Chanh Nguyenb50fedb2022-10-24 15:29:56 +07001#!/bin/bash
2
3# Helper script to report firmware version for components on the system (MB CPLD, Backplane CPLD, …)
4# Author : Hieu Huynh (hieu.huynh@amperecomputing.com)
5#
6# Get MB CPLD firmware revision:
7# ampere_firmware_version.sh mb_cpld
8#
9# Get BMC CPLD firmware revision:
10# ampere_firmware_version.sh bmc_cpld
11#
12# Get Backplane CPLD firmware revision:
13# ampere_firmware_version.sh bp_cpld <id>
14# <id>: 1 for Front Backplane 1
15# 2 for Front Backplane 2
16# 3 for Front Backplane 3
17# 4 for Rear Backplane 1
18# 5 for Rear Backplane 2
19
20# shellcheck disable=SC2046
21
22do_mb_cpld_firmware_report() {
23 echo "MB CPLD"
24 gpioset $(gpiofind hpm-fw-recovery)=1
25 gpioset $(gpiofind jtag-program-sel)=1
26 sleep 1
27 ampere_cpldupdate_jtag -v
28 ampere_cpldupdate_jtag -i
29}
30
31do_bmc_cpld_firmware_report() {
32 echo "BMC CPLD (Only for DC-SCM board)"
33 gpioset $(gpiofind jtag-program-sel)=0
34 sleep 1
35 ampere_cpldupdate_jtag -v
36 ampere_cpldupdate_jtag -i
37}
38
39do_bp_cpld_firmware_report() {
40 BP_ID=$1
41 if [[ $BP_ID == 1 ]]; then
42 echo "Front Backplane 1 CPLD"
43 ampere_cpldupdate_i2c -b 101 -s 0x40 -t 2 -v
44 ampere_cpldupdate_i2c -b 101 -s 0x40 -t 2 -i
45 elif [[ $BP_ID == 2 ]]; then
46 echo "Front Backplane 2 CPLD"
47 ampere_cpldupdate_i2c -b 102 -s 0x40 -t 2 -v
48 ampere_cpldupdate_i2c -b 102 -s 0x40 -t 2 -i
49 elif [[ $BP_ID == 3 ]]; then
50 echo "Front Backplane 3 CPLD"
51 ampere_cpldupdate_i2c -b 100 -s 0x40 -t 2 -v
52 ampere_cpldupdate_i2c -b 100 -s 0x40 -t 2 -i
53 elif [[ $BP_ID == 4 ]]; then
54 echo "Rear Backplane 1 CPLD"
55 ampere_cpldupdate_i2c -b 103 -s 0x40 -t 2 -v
56 ampere_cpldupdate_i2c -b 103 -s 0x40 -t 2 -i
57 elif [[ $BP_ID == 5 ]]; then
58 echo "Rear Backplane 2 CPLD"
59 ampere_cpldupdate_i2c -b 104 -s 0x40 -t 2 -v
60 ampere_cpldupdate_i2c -b 104 -s 0x40 -t 2 -i
61 fi
62}
63
64if [ $# -eq 0 ]; then
65 echo "Usage:"
66 echo " - Get MB CPLD firmware revision"
67 echo " $(basename "$0") mb_cpld"
68 echo " - Get BMC CPLD firmware revision"
69 echo " $(basename "$0") bmc_cpld"
70 echo " - Get Backplane CPLD firmware revision"
71 echo " $(basename "$0") bp_cpld <id>"
72 echo " <id>:"
73 echo " 1 - FrontBP1"
74 echo " 2 - FrontBP2"
75 echo " 3 - FrontBP3"
76 echo " 4 - RearBP1"
77 echo " 5 - RearBP2"
78 exit 0
79fi
80
81TYPE=$1
82ID=$2
83
84if [[ $TYPE == "mb_cpld" ]]; then
85 do_mb_cpld_firmware_report
86elif [[ $TYPE == "bmc_cpld" ]]; then
87 do_bmc_cpld_firmware_report
88elif [[ $TYPE == "bp_cpld" ]]; then
89 if [ -z "$ID" ]; then
90 echo "Please choose backplanes id: 1 - FrontBP1, 2 - FrontBP2, 3 - FrontBP3, 4 - FrontBP4, 5 - FrontBP5"
91 exit 0
92 elif [[ "$ID" -ge "1" ]] && [[ "$ID" -le "5" ]]; then
93 do_bp_cpld_firmware_report "$ID"
94 else
95 echo "Backplanes id invalid"
96 fi
97fi
98
99exit 0