From: Rafał Miłecki <zajec5@gmail.com>
Date: Thu, 9 Apr 2015 06:33:56 +0000 (+0000)
Subject: bcm53xx: switch to the otrx for verifying TRX images
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=2198db252ca8e865b1eac24e20a50f312b6dc6e9;p=openwrt%2Fstaging%2Fsvanheule.git

bcm53xx: switch to the otrx for verifying TRX images

This adds checking CRC32 of provided firmware image.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45320
---

diff --git a/target/linux/bcm53xx/Makefile b/target/linux/bcm53xx/Makefile
index 5b5e6077ac..8b7f71bbd1 100644
--- a/target/linux/bcm53xx/Makefile
+++ b/target/linux/bcm53xx/Makefile
@@ -23,7 +23,7 @@ endef
 
 KERNELNAME:=zImage dtbs
 
-DEFAULT_PACKAGES += swconfig wpad-mini nvram \
+DEFAULT_PACKAGES += swconfig wpad-mini nvram otrx \
 	kmod-gpio-button-hotplug \
 	kmod-leds-gpio kmod-ledtrig-default-on kmod-ledtrig-timer
 
diff --git a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh
index e174cc7beb..ed84386a68 100644
--- a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh
@@ -54,20 +54,6 @@ platform_identify() {
 	echo "unknown"
 }
 
-# $(1): image that should contain trx
-# $(2): trx offset in image
-platform_check_image_trx() {
-	local magic=$(get_magic_long_at "$1" $2)
-
-	[ "$magic" != "48445230" ] && {
-		return 1
-	}
-
-	# TODO: Check crc32
-
-	return 0
-}
-
 platform_check_image() {
 	[ "$#" -gt 1 ] && return 1
 
@@ -93,7 +79,7 @@ platform_check_image() {
 				error=1
 			}
 
-			if ! platform_check_image_trx "$1" "$header_len"; then
+			if ! otrx -c "$1" -o "$header_len"; then
 				echo "No valid TRX firmware in the CHK image"
 				error=1
 			fi
@@ -108,12 +94,16 @@ platform_check_image() {
 				error=1
 			}
 
-			if ! platform_check_image_trx "$1" 32; then
+			if ! otrx -c "$1" -o 32; then
 				echo "No valid TRX firmware in the CyberTAN image"
 				error=1
 			fi
 		;;
 		"trx")
+			if ! otrx -c "$1"; then
+				echo "Invalid (corrupted?) TRX firmware"
+				error=1
+			fi
 		;;
 		*)
 			echo "Invalid image type. Please use only .trx files"