diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2016-06-27 15:24:00 +0200 |
---|---|---|
committer | Zoltan HERPAI <wigyori@uid0.hu> | 2016-06-27 15:24:00 +0200 |
commit | 20f8925e01f6bb9cbdc4c982052269ed5cebd174 (patch) | |
tree | ec559c9cdca88d86180b44b9d82250de54109a16 | |
parent | c75a18ae2fae3ca77c2db34ce858993edf380068 (diff) | |
download | master-187ad058-20f8925e01f6bb9cbdc4c982052269ed5cebd174.tar.gz master-187ad058-20f8925e01f6bb9cbdc4c982052269ed5cebd174.tar.bz2 master-187ad058-20f8925e01f6bb9cbdc4c982052269ed5cebd174.zip |
bcm53xx: sysupgrade: move TRX specific code to separated function
This will allow adding support for other formats (e.g. Seama) in a clean
way.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
-rw-r--r-- | target/linux/bcm53xx/base-files/lib/upgrade/platform.sh | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh index 51ad041730..d613595a66 100644 --- a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh @@ -132,22 +132,12 @@ platform_check_image() { return $error } -platform_pre_upgrade() { - export RAMFS_COPY_BIN="${RAMFS_COPY_BIN} /usr/bin/oseama /bin/sed" - - local file_type=$(platform_identify "$1") +# $(1): image for upgrade (with possible extra header) +# $(2): offset of trx in image +platform_pre_upgrade_trx() { local dir="/tmp/sysupgrade-bcm53xx" local trx="$1" - local offset - - [ "$(platform_flash_type)" != "nand" ] && return - - # Find trx offset - case "$file_type" in - "chk") offset=$((0x$(get_magic_long_at "$1" 4)));; - "cybertan") offset=32;; - "seama") return;; - esac + local offset="$2" # Extract partitions from trx rm -fR $dir @@ -207,6 +197,22 @@ platform_pre_upgrade() { nand_do_upgrade /tmp/root.ubi } +platform_pre_upgrade() { + export RAMFS_COPY_BIN="${RAMFS_COPY_BIN} /usr/bin/oseama /bin/sed" + + 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") return;; + "trx") platform_pre_upgrade_trx "$1";; + esac +} + platform_trx_from_chk_cmd() { local header_len=$((0x$(get_magic_long_at "$1" 4))) |