From 5e90144aec50f1a394f62ef4691c7c51f5517cbe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
Date: Sat, 6 Jun 2015 17:05:31 +0000
Subject: bcm53xx: sysupgrade: extract TRX partitions directly from vendor
 image
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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>

SVN-Revision: 45911
---
 target/linux/bcm53xx/base-files/lib/upgrade/platform.sh | 8 +++++---
 1 file 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
 
-- 
cgit v1.2.3