aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2015-06-06 17:05:31 +0000
committerRafał Miłecki <zajec5@gmail.com>2015-06-06 17:05:31 +0000
commit2abf42fc3119613296bded933e1767dabbce6c00 (patch)
treec947ce548e4943c08a549c5e6e164bdd21ca7661
parent157529218644be44e33d8deaf5a05214615ae1c3 (diff)
downloadupstream-2abf42fc3119613296bded933e1767dabbce6c00.tar.gz
upstream-2abf42fc3119613296bded933e1767dabbce6c00.tar.bz2
upstream-2abf42fc3119613296bded933e1767dabbce6c00.zip
bcm53xx: sysupgrade: extract TRX partitions directly from vendor image
Extracting full TRX out of vendor format is not needed as otrx supports passing TRX offset. This saves some RAM during sysupgrade. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45911 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/bcm53xx/base-files/lib/upgrade/platform.sh8
1 files changed, 5 insertions, 3 deletions
diff --git a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh
index 88629549dc..4920b55caf 100644
--- a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh
@@ -123,19 +123,21 @@ platform_pre_upgrade() {
local file_type=$(platform_identify "$1")
local dir="/tmp/sysupgrade-bcm53xx"
local trx="$1"
+ local offset
[ "$(platform_flash_type)" != "nand" ] && return
- # Extract trx
+ # Find trx offset
case "$file_type" in
- "chk") trx="/tmp/$(basename $1).trx"; platform_extract_trx_from_chk "$1" "$trx";;
- "cybertan") trx="/tmp/$(basename $1).trx"; platform_extract_trx_from_cybertan "$1" "$trx";;
+ "chk") offset=$((0x$(get_magic_long_at "$1" 4)));;
+ "cybertan") offset=32;;
esac
# Extract partitions from trx
rm -fR $dir
mkdir -p $dir
otrx extract "$trx" \
+ ${offset:+-o $offset} \
-1 $dir/kernel \
-2 $dir/root