Chanh Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 1 | #!/bin/bash |
Chanh Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 2 | |
| 3 | usage () { |
| 4 | echo "Usage:" |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 5 | echo " $(basename "$0") <image path> " |
Chanh Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 6 | echo "Where:" |
| 7 | echo " <image path>: the path link to folder, which include image file and MANIFEST" |
| 8 | echo "Example:" |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 9 | echo " $(basename "$0") /tmp/images/ghdh1393" |
Chanh Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 10 | } |
| 11 | |
| 12 | |
| 13 | IMG_PATH="$1" |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 14 | if [ ! -d "$IMG_PATH" ]; then |
Chanh Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 15 | echo "The folder $IMG_PATH does not exist" |
| 16 | usage |
| 17 | exit 1 |
| 18 | fi |
| 19 | |
| 20 | MANIFEST_PATH="${IMG_PATH}/MANIFEST" |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 21 | if [ ! -f "$MANIFEST_PATH" ]; then |
Chanh Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 22 | echo "The MANIFEST file $MANIFEST_PATH does not exist" |
| 23 | usage |
| 24 | exit 1 |
| 25 | fi |
| 26 | |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 27 | EXTENDED_VERSION=$(awk '/ExtendedVersion/ {print}' "${MANIFEST_PATH}" | cut -d "=" -f 2) |
Chanh Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 28 | |
| 29 | # If the ExtendedVersion is empty, set default to update UEFI/EDKII on primary device |
| 30 | if [ -z "$EXTENDED_VERSION" ] |
| 31 | then |
| 32 | EXTENDED_VERSION="primary" |
| 33 | fi |
| 34 | |
| 35 | # Assign the command based on the ExtendedVersion |
| 36 | case ${EXTENDED_VERSION} in |
| 37 | "primary") |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 38 | 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 Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 40 | ;; |
| 41 | |
| 42 | "secondary") |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 43 | 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 Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 45 | ;; |
| 46 | |
| 47 | "scp-primary") |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 48 | 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 Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 50 | ;; |
| 51 | |
| 52 | "scp-secondary") |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 53 | 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 Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 55 | ;; |
| 56 | |
Chanh Nguyen | b50fedb | 2022-10-24 15:29:56 +0700 | [diff] [blame^] | 57 | "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. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 68 | IMAGE=$(find "${IMG_PATH}" -type f \( -name "*.bin" \)) |
Chanh Nguyen | b50fedb | 2022-10-24 15:29:56 +0700 | [diff] [blame^] | 69 | 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 Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 85 | ;; |
| 86 | |
| 87 | *) |
| 88 | echo "Invalid ExtendedVersion: ${EXTENDED_VERSION}. Please check MANIFEST file!" |
| 89 | exit 1 |
| 90 | ;; |
| 91 | esac |
| 92 | |
| 93 | |
| 94 | if [ -z "$IMAGE" ] |
| 95 | then |
| 96 | echo "ERROR: The image file: No such file or directory" |
| 97 | exit 1 |
Chanh Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 98 | fi |
| 99 | |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 100 | if ! eval "$CMD"; |
| 101 | then |
Chanh Nguyen | a3150fa | 2021-09-07 17:50:12 +0700 | [diff] [blame] | 102 | echo "ERROR: The firmware update not successfull" |
| 103 | exit 1 |
| 104 | fi |