ar71xx: add support for TP-Link TL-WR902AC v1
[openwrt/openwrt.git] / target / linux / ar71xx / base-files / lib / upgrade / platform.sh
index d98f2733f5286bbbda362dd61d63962c52e34a9e..88e8e92a0d071c2c5446c0a0845368771ff3b61c 100755 (executable)
@@ -46,7 +46,7 @@ platform_find_kernelpart() {
 platform_find_rootfspart() {
        local part
        for part in "${1%:*}" "${1#*:}"; do
 platform_find_rootfspart() {
        local part
        for part in "${1%:*}" "${1#*:}"; do
-               [ "$part" != "$2" ] && echo "$part"; break
+               [ "$part" != "$2" ] && echo "$part" && break
        done
 }
 
        done
 }
 
@@ -111,7 +111,7 @@ tplink_pharos_check_image() {
        # is accepted (loading the first 1.5M of a remote image for this check seems
        # a bit extreme)
        dd if="$1" bs=1 skip=1511432 count=1024 2>/dev/null | while read line; do
        # is accepted (loading the first 1.5M of a remote image for this check seems
        # a bit extreme)
        dd if="$1" bs=1 skip=1511432 count=1024 2>/dev/null | while read line; do
-               [ "$line" == "$model_string" ] && break
+               [ "$line" = "$model_string" ] && break
        done || {
                echo "Unsupported image (model not in support-list)"
                return 1
        done || {
                echo "Unsupported image (model not in support-list)"
                return 1
@@ -204,7 +204,12 @@ platform_check_image() {
        airgateway|\
        airrouter|\
        ap132|\
        airgateway|\
        airrouter|\
        ap132|\
+       ap531b0|\
        ap90q|\
        ap90q|\
+       archer-c25-v1|\
+       archer-c58-v1|\
+       archer-c59-v1|\
+       archer-c60-v1|\
        bullet-m|\
        c-55|\
        carambola2|\
        bullet-m|\
        c-55|\
        carambola2|\
@@ -214,6 +219,7 @@ platform_check_image() {
        cf-e380ac-v2|\
        cf-e520n|\
        cf-e530n|\
        cf-e380ac-v2|\
        cf-e520n|\
        cf-e530n|\
+       cpe505n|\
        cpe830|\
        cpe870|\
        dgl-5500-a1|\
        cpe830|\
        cpe870|\
        dgl-5500-a1|\
@@ -231,6 +237,8 @@ platform_check_image() {
        dlan-pro-500-wp|\
        dr531|\
        dragino2|\
        dlan-pro-500-wp|\
        dr531|\
        dragino2|\
+       ebr-2310-c1|\
+       ens202ext|\
        epg5000|\
        esr1750|\
        esr900|\
        epg5000|\
        esr1750|\
        esr900|\
@@ -244,22 +252,28 @@ platform_check_image() {
        hiwifi-hc6361|\
        hornet-ub-x2|\
        jwap230|\
        hiwifi-hc6361|\
        hornet-ub-x2|\
        jwap230|\
+       lima|\
        loco-m-xw|\
        mzk-w04nu|\
        mzk-w300nh|\
        nanostation-m-xw|\
        nanostation-m|\
        nbg460n_550n_550nh|\
        loco-m-xw|\
        mzk-w04nu|\
        mzk-w300nh|\
        nanostation-m-xw|\
        nanostation-m|\
        nbg460n_550n_550nh|\
+       pqi-air-pen|\
+       r602n|\
        rocket-m-ti|\
        rocket-m-xw|\
        rocket-m|\
        rw2458n|\
        rocket-m-ti|\
        rocket-m-xw|\
        rocket-m|\
        rw2458n|\
+       sc1750|\
        sc300m|\
        sc300m|\
+       sc450|\
        sr3200|\
        tew-632brp|\
        tew-712br|\
        tew-732br|\
        tew-823dru|\
        sr3200|\
        tew-632brp|\
        tew-712br|\
        tew-732br|\
        tew-823dru|\
+       tl-wr942n-v1|\
        unifi-outdoor|\
        unifiac-lite|\
        unifiac-pro|\
        unifi-outdoor|\
        unifiac-lite|\
        unifiac-pro|\
@@ -273,6 +287,7 @@ platform_check_image() {
        wpj342|\
        wpj344|\
        wpj531|\
        wpj342|\
        wpj344|\
        wpj531|\
+       wpj563|\
        wrt400n|\
        wrtnode2q|\
        wzr-450hp2|\
        wrt400n|\
        wrtnode2q|\
        wzr-450hp2|\
@@ -337,7 +352,6 @@ platform_check_image() {
        ls-sr71|\
        pb42|\
        pb44|\
        ls-sr71|\
        pb42|\
        pb44|\
-       rb-941-2nd|\
        routerstation-pro|\
        routerstation|\
        wp543|\
        routerstation-pro|\
        routerstation|\
        wp543|\
@@ -388,6 +402,7 @@ platform_check_image() {
        tl-mr3220|\
        tl-mr3420-v2|\
        tl-mr3420|\
        tl-mr3220|\
        tl-mr3420-v2|\
        tl-mr3420|\
+       tl-mr6400|\
        tl-wa701nd-v2|\
        tl-wa7210n-v2|\
        tl-wa750re|\
        tl-wa701nd-v2|\
        tl-wa7210n-v2|\
        tl-wa750re|\
@@ -396,6 +411,8 @@ platform_check_image() {
        tl-wa801nd-v3|\
        tl-wa830re-v2|\
        tl-wa850re|\
        tl-wa801nd-v3|\
        tl-wa830re-v2|\
        tl-wa850re|\
+       tl-wa850re-v2|\
+       tl-wa855re-v1|\
        tl-wa860re|\
        tl-wa901nd-v2|\
        tl-wa901nd-v3|\
        tl-wa860re|\
        tl-wa901nd-v2|\
        tl-wa901nd-v3|\
@@ -415,10 +432,14 @@ platform_check_image() {
        tl-wr703n|\
        tl-wr710n|\
        tl-wr720n-v3|\
        tl-wr703n|\
        tl-wr710n|\
        tl-wr720n-v3|\
+       tl-wr740n-v6|\
        tl-wr741nd-v4|\
        tl-wr741nd|\
        tl-wr802n-v1|\
        tl-wr741nd-v4|\
        tl-wr741nd|\
        tl-wr802n-v1|\
+       tl-wr802n-v2|\
        tl-wr810n|\
        tl-wr810n|\
+       tl-wr840n-v2|\
+       tl-wr840n-v3|\
        tl-wr841n-v11|\
        tl-wr841n-v1|\
        tl-wr841n-v7|\
        tl-wr841n-v11|\
        tl-wr841n-v1|\
        tl-wr841n-v7|\
@@ -473,13 +494,42 @@ platform_check_image() {
        tew-673gru)
                dir825b_check_image "$1" && return 0
                ;;
        tew-673gru)
                dir825b_check_image "$1" && return 0
                ;;
-       rb*)
+       rb-411|\
+       rb-411u|\
+       rb-433|\
+       rb-433u|\
+       rb-435g|\
+       rb-450|\
+       rb-450g|\
+       rb-493|\
+       rb-493g|\
+       rb-750|\
+       rb-750gl|\
+       rb-751|\
+       rb-751g|\
+       rb-911g-2hpnd|\
+       rb-911g-5hpnd|\
+       rb-911g-5hpacd|\
+       rb-912uag-2hpnd|\
+       rb-912uag-5hpnd|\
+       rb-951g-2hnd|\
+       rb-951ui-2hnd|\
+       rb-2011l|\
+       rb-2011il|\
+       rb-2011uas|\
+       rb-2011uias|\
+       rb-2011uas-2hnd|\
+       rb-2011uias-2hnd|\
+       rb-sxt2n|\
+       rb-sxt5n)
                nand_do_platform_check routerboard $1
                return $?
                ;;
        c-60|\
                nand_do_platform_check routerboard $1
                return $?
                ;;
        c-60|\
+       hiveap-121|\
        nbg6716|\
        r6100|\
        nbg6716|\
        r6100|\
+       rambutan|\
        wndr3700v4|\
        wndr4300)
                nand_do_platform_check $board $1
        wndr3700v4|\
        wndr4300)
                nand_do_platform_check $board $1
@@ -493,6 +543,8 @@ platform_check_image() {
                tplink_pharos_check_image "$1" && return 0
                return 1
                ;;
                tplink_pharos_check_image "$1" && return 0
                return 1
                ;;
+       a40|\
+       a60|\
        mr1750v2|\
        mr1750|\
        mr600v2|\
        mr1750v2|\
        mr1750|\
        mr600v2|\
@@ -501,9 +553,11 @@ platform_check_image() {
        mr900|\
        om2p-hsv2|\
        om2p-hsv3|\
        mr900|\
        om2p-hsv2|\
        om2p-hsv3|\
+       om2p-hsv4|\
        om2p-hs|\
        om2p-lc|\
        om2pv2|\
        om2p-hs|\
        om2p-lc|\
        om2pv2|\
+       om2pv4|\
        om2p|\
        om5p-acv2|\
        om5p-ac|\
        om2p|\
        om5p-acv2|\
        om5p-ac|\
@@ -594,6 +648,19 @@ platform_check_image() {
 
                return 0;
                ;;
 
                return 0;
                ;;
+       # these boards use metadata images
+       fritz300e|\
+       rb-750-r2|\
+       rb-750up-r2|\
+       rb-941-2nd|\
+       rb-951ui-2nd|\
+       rb-952ui-5ac2nd|\
+       rb-962uigs-5hact2hnt|\
+       rb-lhg-5nd|\
+       rb-mapl-2nd|\
+       tl-wr902ac-v1)
+               return 0
+               ;;
        esac
 
        echo "Sysupgrade is not yet supported on $board."
        esac
 
        echo "Sysupgrade is not yet supported on $board."
@@ -604,14 +671,54 @@ platform_pre_upgrade() {
        local board=$(ar71xx_board_name)
 
        case "$board" in
        local board=$(ar71xx_board_name)
 
        case "$board" in
-       rb*|\
        c-60|\
        c-60|\
+       hiveap-121|\
        nbg6716|\
        r6100|\
        nbg6716|\
        r6100|\
+       rambutan|\
+       rb-411|\
+       rb-411u|\
+       rb-433|\
+       rb-433u|\
+       rb-435g|\
+       rb-450|\
+       rb-450g|\
+       rb-493|\
+       rb-493g|\
+       rb-750|\
+       rb-750gl|\
+       rb-751|\
+       rb-751g|\
+       rb-911g-2hpnd|\
+       rb-911g-5hpnd|\
+       rb-911g-5hpacd|\
+       rb-912uag-2hpnd|\
+       rb-912uag-5hpnd|\
+       rb-951g-2hnd|\
+       rb-951ui-2hnd|\
+       rb-2011il|\
+       rb-2011l|\
+       rb-2011uas|\
+       rb-2011uias|\
+       rb-2011uas-2hnd|\
+       rb-2011uias-2hnd|\
+       rb-sxt2n|\
+       rb-sxt5n|\
        wndr3700v4|\
        wndr4300)
                nand_do_upgrade "$1"
                ;;
        wndr3700v4|\
        wndr4300)
                nand_do_upgrade "$1"
                ;;
+       rb-750-r2|\
+       rb-750up-r2|\
+       rb-941-2nd|\
+       rb-951ui-2nd|\
+       rb-952ui-5ac2nd|\
+       rb-962uigs-5hact2hnt|\
+       rb-lhg-5nd|\
+       rb-mapl-2nd)
+               # erase firmware if booted from initramfs
+               [ -z "$(rootfs_type)" ] && mtd erase firmware
+               ;;
        mr18|\
        z1)
                merakinand_do_upgrade "$1"
        mr18|\
        z1)
                merakinand_do_upgrade "$1"
@@ -638,10 +745,6 @@ platform_do_upgrade() {
        local board=$(ar71xx_board_name)
 
        case "$board" in
        local board=$(ar71xx_board_name)
 
        case "$board" in
-       rb-941-2nd)
-               PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD=1
-               platform_do_upgrade_combined "$ARGV"
-               ;;
        all0258n)
                platform_do_upgrade_allnet "0x9f050000" "$ARGV"
                ;;
        all0258n)
                platform_do_upgrade_allnet "0x9f050000" "$ARGV"
                ;;
@@ -661,13 +764,16 @@ platform_do_upgrade() {
                platform_do_upgrade_allnet "0x9f080000" "$ARGV"
                ;;
        cap4200ag|\
                platform_do_upgrade_allnet "0x9f080000" "$ARGV"
                ;;
        cap4200ag|\
-       eap300v2)
+       eap300v2|\
+       ens202ext)
                platform_do_upgrade_allnet "0xbf0a0000" "$ARGV"
                ;;
        dir-825-b1|\
        tew-673gru)
                platform_do_upgrade_dir825b "$ARGV"
                ;;
                platform_do_upgrade_allnet "0xbf0a0000" "$ARGV"
                ;;
        dir-825-b1|\
        tew-673gru)
                platform_do_upgrade_dir825b "$ARGV"
                ;;
+       a40|\
+       a60|\
        mr1750v2|\
        mr1750|\
        mr600v2|\
        mr1750v2|\
        mr1750|\
        mr600v2|\
@@ -676,9 +782,11 @@ platform_do_upgrade() {
        mr900|\
        om2p-hsv2|\
        om2p-hsv3|\
        mr900|\
        om2p-hsv2|\
        om2p-hsv3|\
+       om2p-hsv4|\
        om2p-hs|\
        om2p-lc|\
        om2pv2|\
        om2p-hs|\
        om2p-lc|\
        om2pv2|\
+       om2pv4|\
        om2p|\
        om5p-acv2|\
        om5p-ac|\
        om2p|\
        om5p-acv2|\
        om5p-ac|\