#!/usr/bin/env bash CONFIG_PART_NAME="active_bank" find_mtd_part() { local PART=$(awk -F: "/$1/{print \$1}" /proc/mtd) echo /dev/$PART } main() { local config_part=$(find_mtd_part $CONFIG_PART_NAME) local bank_part_name=$(awk 'NR==1{print $1}' $config_part) local bank_part=$(find_mtd_part $bank_part_name) echo "Active bank: " $bank_part_name if [ -z "${bank_part}" ] || [ -z "${bank_part_name}" ]; then return 1; fi flash_erase $bank_part 0 0 || return 1 nandwrite -p $bank_part $IMAGE || return 1 echo "Done!" return 0 } usage() { printf "Usage: %s -i image.firm" "$(basename "$0")" printf "\n\t-i ==> path to .firm Image file" return 1 } while getopts "i:h" arg; do case $arg in i) IMAGE=$OPTARG ;; h) usage ;; *) usage esac done if [ -z "${IMAGE}" ]; then usage fi main