ath79: add support for Senao WatchGuard AP200
[openwrt/openwrt.git] / target / linux / ath79 / generic / base-files / lib / upgrade / platform.sh
index 953d6a96d36f8a36fcec1c9921e29ac5a5288ad8..104eaf302e1726453f04016f38cce62caf8dcf7a 100644 (file)
@@ -8,35 +8,19 @@ REQUIRE_IMAGE_METADATA=1
 RAMFS_COPY_BIN='fw_printenv fw_setenv'
 RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
 
-redboot_fis_do_upgrade() {
-       local append
-       local sysup_file="$1"
-       local kern_part="$2"
-       local magic=$(get_magic_word "$sysup_file")
-
-       if [ "$magic" = "4349" ]; then
-               local kern_length=0x$(dd if="$sysup_file" bs=2 skip=1 count=4 2>/dev/null)
-
-               [ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
-               dd if="$sysup_file" bs=64k skip=1 2>/dev/null | \
-                       mtd -r $append -F$kern_part:$kern_length:0x80060000,rootfs write - $kern_part:rootfs
-
-       elif [ "$magic" = "7379" ]; then
-               local board_dir=$(tar tf $sysup_file | grep -m 1 '^sysupgrade-.*/$')
-               local kern_length=$(tar xf $sysup_file ${board_dir}kernel -O | wc -c)
-
-               [ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
-               tar xf $sysup_file ${board_dir}kernel ${board_dir}root -O | \
-                       mtd -r $append -F$kern_part:$kern_length:0x80060000,rootfs write - $kern_part:rootfs
-
-       else
-               echo "Unknown image, aborting!"
-               return 1
-       fi
-}
-
 platform_check_image() {
-       return 0
+       local board=$(board_name)
+
+       case "$board" in
+       jjplus,ja76pf2|\
+       ubnt,routerstation|\
+       ubnt,routerstation-pro)
+               platform_check_image_redboot_fis "$1"
+               ;;
+       *)
+               return 0
+               ;;
+       esac
 }
 
 platform_do_upgrade() {
@@ -45,7 +29,7 @@ platform_do_upgrade() {
        case "$board" in
        adtran,bsap1800-v2|\
        adtran,bsap1840)
-               redboot_fis_do_upgrade "$1" vmlinux_2
+               platform_do_upgrade_redboot_fis "$1" vmlinux_2
                ;;
        allnet,all-wap02860ac|\
        araknis,an-300-ap-i-n|\
@@ -56,7 +40,9 @@ platform_do_upgrade() {
        engenius,eap600|\
        engenius,ecb600|\
        engenius,ens202ext-v1|\
-       engenius,enstationac-v1)
+       engenius,enstationac-v1|\
+       watchguard,ap200|\
+       watchguard,ap300)
                IMAGE_LIST="tar tzf $1"
                IMAGE_CMD="tar xzOf $1"
                KERNEL_PART="loader"
@@ -66,7 +52,7 @@ platform_do_upgrade() {
                platform_do_upgrade_failsafe_datachk "$1"
                ;;
        jjplus,ja76pf2)
-               redboot_fis_do_upgrade "$1" linux
+               platform_do_upgrade_redboot_fis "$1" linux
                ;;
        openmesh,a40|\
        openmesh,a60|\
@@ -98,7 +84,7 @@ platform_do_upgrade() {
                ;;
        ubnt,routerstation|\
        ubnt,routerstation-pro)
-               redboot_fis_do_upgrade "$1" kernel
+               platform_do_upgrade_redboot_fis "$1" kernel
                ;;
        *)
                default_do_upgrade "$1"