From: Rafał Miłecki <zajec5@gmail.com>
Date: Mon, 15 Dec 2014 09:59:44 +0000 (+0000)
Subject: brcm47xx: detect (and still reject for now) CyberTAN fw format
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=a5b6b7e41943fec0eb28593ce92b0713990c8d23;p=openwrt%2Fstaging%2Fwigyori.git

brcm47xx: detect (and still reject for now) CyberTAN fw format

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

SVN-Revision: 43714
---

diff --git a/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh b/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh
index d216ca4d04..412d6daaff 100644
--- a/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/brcm47xx/base-files/lib/upgrade/platform.sh
@@ -1,5 +1,11 @@
 PART_NAME=firmware
 
+# $(1): file to read magic from
+# $(2): offset in bytes
+get_magic_long_at() {
+	dd if="$1" skip=$2 bs=1 count=4 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
+}
+
 brcm47xx_identify() {
 	local magic
 
@@ -15,6 +21,12 @@ brcm47xx_identify() {
 			;;
 	esac
 
+	magic=$(get_magic_long_at "$1" 14)
+	[ "$magic" = "55324e44" ] && {
+		echo "cybertan"
+		return
+	}
+
 	echo "unknown"
 }