aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ar71xx/base-files/lib/upgrade/platform.sh')
-rwxr-xr-xtarget/linux/ar71xx/base-files/lib/upgrade/platform.sh30
1 files changed, 30 insertions, 0 deletions
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index d42a704e57..910da52bb7 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -2,6 +2,7 @@
# Copyright (C) 2011 OpenWrt.org
#
+. /lib/functions/system.sh
. /lib/ar71xx.sh
PART_NAME=firmware
@@ -106,6 +107,29 @@ platform_do_upgrade_compex() {
fi
}
+alfa_check_image() {
+ local magic_long="$(get_magic_long "$1")"
+ local fw_part_size=$(mtd_get_part_size firmware)
+
+ case "$magic_long" in
+ "27051956")
+ [ "$fw_part_size" != "16318464" ] && {
+ echo "Invalid image magic \"$magic_long\" for $fw_part_size bytes"
+ return 1
+ }
+ ;;
+
+ "68737173")
+ [ "$fw_part_size" != "7929856" ] && {
+ echo "Invalid image magic \"$magic_long\" for $fw_part_size bytes"
+ return 1
+ }
+ ;;
+ esac
+
+ return 0
+}
+
platform_check_image() {
local board=$(ar71xx_board_name)
local magic="$(get_magic_word "$1")"
@@ -293,6 +317,12 @@ platform_check_image() {
return 0
;;
+
+ tube2h)
+ alfa_check_image "$1" && return 0
+ return 1
+ ;;
+
uap-pro)
[ "$magic_long" != "19852003" ] && {
echo "Invalid image type."