diff --git a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh index 5a42a36ae4..1d829c6519 100644 --- a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh @@ -1,4 +1,4 @@ -RAMFS_COPY_BIN='osafeloader oseama' +RAMFS_COPY_BIN='osafeloader oseama otrx' PART_NAME=firmware @@ -147,7 +147,7 @@ platform_check_image() { # $(1): image for upgrade (with possible extra header) # $(2): offset of trx in image -platform_pre_upgrade_trx() { +platform_do_upgrade_nand_trx() { local dir="/tmp/sysupgrade-bcm53xx" local trx="$1" local offset="$2" @@ -210,7 +210,7 @@ platform_pre_upgrade_trx() { nand_do_upgrade /tmp/root.ubi } -platform_pre_upgrade_seama() { +platform_do_upgrade_nand_seama() { local dir="/tmp/sysupgrade-bcm53xx" local seama="$1" local tmp @@ -257,20 +257,6 @@ platform_pre_upgrade_seama() { nand_do_upgrade $dir/root.ubi } -platform_pre_upgrade() { - local file_type=$(platform_identify "$1") - - [ "$(platform_flash_type)" != "nand" ] && return - - # Find trx offset - case "$file_type" in - "chk") platform_pre_upgrade_trx "$1" $((0x$(get_magic_long_at "$1" 4)));; - "cybertan") platform_pre_upgrade_trx "$1" 32;; - "seama") platform_pre_upgrade_seama "$1";; - "trx") platform_pre_upgrade_trx "$1";; - esac -} - platform_trx_from_chk_cmd() { local header_len=$((0x$(get_magic_long_at "$1" 4))) @@ -321,6 +307,15 @@ platform_do_upgrade() { local cmd= [ "$(platform_flash_type)" == "nand" ] && { + case "$file_type" in + "chk") platform_do_upgrade_nand_trx "$1" $((0x$(get_magic_long_at "$1" 4)));; + "cybertan") platform_do_upgrade_nand_trx "$1" 32;; + "seama") platform_do_upgrade_nand_seama "$1";; + "trx") platform_do_upgrade_nand_trx "$1";; + esac + + # Above calls exit on success. + # If we got here something went wrong. echo "Writing whole image to NAND flash. All erase counters will be lost." }