blob: c23f2502aabff8a92d55be32e6e72b508378f43d [file] [log] [blame]
Chanh Nguyena3150fa2021-09-07 17:50:12 +07001#!/bin/bash
Chanh Nguyena3150fa2021-09-07 17:50:12 +07002
3usage () {
4 echo "Usage:"
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +00005 echo " $(basename "$0") <image path> "
Chanh Nguyena3150fa2021-09-07 17:50:12 +07006 echo "Where:"
7 echo " <image path>: the path link to folder, which include image file and MANIFEST"
8 echo "Example:"
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +00009 echo " $(basename "$0") /tmp/images/ghdh1393"
Chanh Nguyena3150fa2021-09-07 17:50:12 +070010}
11
12
13IMG_PATH="$1"
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +000014if [ ! -d "$IMG_PATH" ]; then
Chanh Nguyena3150fa2021-09-07 17:50:12 +070015 echo "The folder $IMG_PATH does not exist"
16 usage
17 exit 1
18fi
19
20MANIFEST_PATH="${IMG_PATH}/MANIFEST"
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +000021if [ ! -f "$MANIFEST_PATH" ]; then
Chanh Nguyena3150fa2021-09-07 17:50:12 +070022 echo "The MANIFEST file $MANIFEST_PATH does not exist"
23 usage
24 exit 1
25fi
26
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +000027EXTENDED_VERSION=$(awk '/ExtendedVersion/ {print}' "${MANIFEST_PATH}" | cut -d "=" -f 2)
Chanh Nguyena3150fa2021-09-07 17:50:12 +070028
29# If the ExtendedVersion is empty, set default to update UEFI/EDKII on primary device
30if [ -z "$EXTENDED_VERSION" ]
31then
32 EXTENDED_VERSION="primary"
33fi
34
35# Assign the command based on the ExtendedVersion
36case ${EXTENDED_VERSION} in
37 "primary")
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +000038 IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.img" -o -name "*.bin" -o -name "*.rom" \))
39 CMD="/usr/sbin/ampere_flash_bios.sh $IMAGE 1"
Chanh Nguyena3150fa2021-09-07 17:50:12 +070040 ;;
41
42 "secondary")
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +000043 IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.img" -o -name "*.bin" -o -name "*.rom" \))
44 CMD="/usr/sbin/ampere_flash_bios.sh $IMAGE 2"
Chanh Nguyena3150fa2021-09-07 17:50:12 +070045 ;;
46
47 "scp-primary")
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +000048 IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.img" -o -name "*.slim" -o -name "*.rom" \))
49 CMD="/usr/sbin/ampere_firmware_upgrade.sh smpmpro $IMAGE 1"
Chanh Nguyena3150fa2021-09-07 17:50:12 +070050 ;;
51
52 "scp-secondary")
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +000053 IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.img" -o -name "*.slim" -o -name "*.rom" \))
54 CMD="/usr/sbin/ampere_firmware_upgrade.sh smpmpro $IMAGE 2"
Chanh Nguyena3150fa2021-09-07 17:50:12 +070055 ;;
56
Chanh Nguyenb50fedb2022-10-24 15:29:56 +070057 "eeprom" | "eeprom-primary")
58 IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.img" -o -name "*.slim" -o -name "*.rom" -o -name "*.bin" \))
59 CMD="/usr/sbin/ampere_firmware_upgrade.sh eeprom $IMAGE 1"
60 ;;
61
62 "eeprom-secondary")
63 IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.img" -o -name "*.slim" -o -name "*.rom" -o -name "*.bin" \))
64 CMD="/usr/sbin/ampere_firmware_upgrade.sh eeprom $IMAGE 2"
65 ;;
66
67 "fru" | "mbfru")
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +000068 IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.bin" \))
Chanh Nguyenb50fedb2022-10-24 15:29:56 +070069 CMD="/usr/sbin/ampere_firmware_upgrade.sh fru $IMAGE 1"
70 ;;
71
72
73 "bmcfru")
74 IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.bin" \))
75 CMD="/usr/sbin/ampere_firmware_upgrade.sh fru $IMAGE 2"
76 ;;
77
78 "mbcpld")
79 IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.jed" \))
80 CMD="/usr/bin/ampere_firmware_upgrade.sh mb_cpld $IMAGE"
81 ;;
82 "bmccpld")
83 IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.jed" \))
84 CMD="/usr/bin/ampere_firmware_upgrade.sh bmc_cpld $IMAGE"
Chanh Nguyena3150fa2021-09-07 17:50:12 +070085 ;;
86
87 *)
88 echo "Invalid ExtendedVersion: ${EXTENDED_VERSION}. Please check MANIFEST file!"
89 exit 1
90 ;;
91esac
92
93
94if [ -z "$IMAGE" ]
95then
96 echo "ERROR: The image file: No such file or directory"
97 exit 1
Chanh Nguyena3150fa2021-09-07 17:50:12 +070098fi
99
Thang Q. Nguyendde1fed2021-11-04 08:30:27 +0000100if ! eval "$CMD";
101then
Chanh Nguyena3150fa2021-09-07 17:50:12 +0700102 echo "ERROR: The firmware update not successfull"
103 exit 1
104fi