ath79: add support for Senao WatchGuard AP200
[openwrt/openwrt.git] / target / linux / ath79 / generic / base-files / lib / upgrade / platform.sh
index 76512758b6746230b8bf5a67bfaf1848a420fdb5..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,15 +29,40 @@ 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|\
+       araknis,an-500-ap-i-ac|\
+       araknis,an-700-ap-i-ac|\
+       engenius,eap1200h|\
+       engenius,eap300-v2|\
+       engenius,eap600|\
+       engenius,ecb600|\
+       engenius,ens202ext-v1|\
+       engenius,enstationac-v1|\
+       watchguard,ap200|\
+       watchguard,ap300)
+               IMAGE_LIST="tar tzf $1"
+               IMAGE_CMD="tar xzOf $1"
+               KERNEL_PART="loader"
+               ROOTFS_PART="fwconcat0"
+               KERNEL_FILE="uImage-lzma.bin"
+               ROOTFS_FILE="root.squashfs"
+               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|\
        openmesh,mr600-v1|\
        openmesh,mr600-v2|\
        openmesh,mr900-v1|\
        openmesh,mr900-v2|\
+       openmesh,mr1750-v1|\
+       openmesh,mr1750-v2|\
+       openmesh,om2p-v1|\
        openmesh,om2p-v2|\
        openmesh,om2p-v4|\
        openmesh,om2p-hs-v1|\
@@ -61,7 +70,10 @@ platform_do_upgrade() {
        openmesh,om2p-hs-v3|\
        openmesh,om2p-hs-v4|\
        openmesh,om2p-lc|\
-       openmesh,om5p)
+       openmesh,om5p|\
+       openmesh,om5p-ac-v1|\
+       openmesh,om5p-ac-v2|\
+       openmesh,om5p-an)
                PART_NAME="inactive"
                platform_do_upgrade_openmesh "$1"
                ;;
@@ -72,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"