ramips: add support for GL-inet GL-MT300N-V2
[openwrt/openwrt.git] / target / linux / ramips / base-files / lib / upgrade / platform.sh
index 3ecfb5704682a13d4ba3e5651204a5120c2bbb82..6aad4c96019b9b8eceea5364890ca23dcaa13bb7 100755 (executable)
@@ -14,125 +14,212 @@ platform_check_image() {
        [ "$#" -gt 1 ] && return 1
 
        case "$board" in
-       3g-6200n | \
-       3g-6200nl | \
-       3g150b | \
-       3g300m | \
-       a5-v11 | \
-       air3gii | \
-       ai-br100 |\
-       all0239-3g | \
-       all0256n | \
-       all5002 | \
-       all5003 | \
-       ar725w | \
-       asl26555 | \
-       awapn2403 | \
-       awm002-evb | \
-       awm003-evb | \
-       bc2 | \
-       broadway | \
-       carambola | \
-       cf-wr800n | \
-       d105 | \
-       dap-1350 | \
-       dcs-930 | \
-       dir-300-b1 | \
-       dir-300-b7 | \
-       dir-320-b1 | \
-       dir-600-b1 | \
-       dir-600-b2 | \
-       dir-615-d | \
-       dir-615-h1 | \
-       dir-620-a1 | \
-       dir-620-d1 | \
-       dir-810l | \
-       e1700 | \
-       esr-9753 | \
-       f7c027 | \
-       fonera20n | \
-       freestation5 | \
-       firewrt |\
-       hg255d | \
-       hlk-rm04 | \
-       ht-tm02 | \
-       hw550-3g | \
-       ip2202 | \
-       m2m | \
-       m3 | \
-       m4 | \
-       microwrt | \
-       mlw221 | \
-       mlwg2 | \
-       mofi3500-3gn | \
-       mpr-a1 | \
-       mpr-a2 | \
-       mr-102n | \
-       mzk-w300nh2 | \
-       nbg-419n | \
-       nw718 | \
-       omni-emb | \
-       omni-emb-hpm | \
-       omni-plug | \
-       psr-680w | \
-       px4885 | \
-       rp-n53 | \
-       rt-g32-b1 | \
-       rt-n10-plus | \
-       rt-n13u | \
-       rt-n14u | \
-       rt-n15 | \
-       rt-n56u | \
-       rut5xx | \
-       sl-r7205 | \
-       tew-691gr | \
-       tew-692gr | \
-       ur-326n4g |\
-       ur-336un |\
-       v22rw-2x2 | \
-       vocore | \
-       w150m | \
-       w306r-v20 |\
-       w502u |\
-       whr-g300n |\
-       whr-300hp2 |\
-       whr-600d |\
-       whr-1166d |\
-       wsr-600 |\
-       wl-330n | \
-       wl-330n3g | \
-       wl-351 | \
-       wl341v3 | \
-       wli-tx4-ag300n | \
-       wzr-agl300nh | \
-       wmr300 |\
-       wnce2001 | \
-       wr512-3gn |\
-       wr6202 |\
-       wr8305rt |\
-       wrtnode |\
-       wt1520 |\
-       wt3020 |\
-       x5 |\
-       x8 |\
-       xiaomi-miwifi-mini |\
-       y1 |\
-       y1s |\
-       zte-q7 |\
-       zbt-wa05)
+       3g150b|\
+       3g300m|\
+       a5-v11|\
+       ai-br100|\
+       air3gii|\
+       all0239-3g|\
+       all0256n-4M|\
+       all0256n-8M|\
+       all5002|\
+       all5003|\
+       ar725w|\
+       asl26555-8M|\
+       asl26555-16M|\
+       awapn2403|\
+       awm002-evb-4M|\
+       awm002-evb-8M|\
+       awm003-evb|\
+       bc2|\
+       broadway|\
+       carambola|\
+       cf-wr800n|\
+       cs-qr10|\
+       d105|\
+       d240|\
+       dap-1350|\
+       db-wrt01|\
+       dcs-930|\
+       dcs-930l-b1|\
+       dir-300-b1|\
+       dir-300-b7|\
+       dir-320-b1|\
+       dir-600-b1|\
+       dir-615-d|\
+       dir-615-h1|\
+       dir-620-a1|\
+       dir-620-d1|\
+       dir-810l|\
+       duzun-dm06|\
+       dwr-512-b|\
+       e1700|\
+       esr-9753|\
+       ew1200|\
+       ex2700|\
+       ex3700|\
+       f7c027|\
+       firewrt|\
+       fonera20n|\
+       freestation5|\
+       gl-mt300a|\
+       gl-mt300n|\
+       gl-mt750|\
+       gl-mt300n-v2|\
+       hc5*61|\
+       hc5661a|\
+       hg255d|\
+       hlk-rm04|\
+       hpm|\
+       ht-tm02|\
+       hw550-3g|\
+       ip2202|\
+       jhr-n805r|\
+       jhr-n825r|\
+       jhr-n926r|\
+       kn|\
+       kn_rc|\
+       kn_rf|\
+       kng_rc|\
+       linkits7688|\
+       linkits7688d|\
+       m2m|\
+       m3|\
+       m4-4M|\
+       m4-8M|\
+       mac1200rv2|\
+       microwrt|\
+       miniembplug|\
+       miniembwifi|\
+       miwifi-mini|\
+       miwifi-nano|\
+       mlw221|\
+       mlwg2|\
+       mofi3500-3gn|\
+       mpr-a1|\
+       mpr-a2|\
+       mr-102n|\
+       mt7628|\
+       mzk-750dhp|\
+       mzk-dp150n|\
+       mzk-ex300np|\
+       mzk-ex750np|\
+       mzk-w300nh2|\
+       mzk-wdpr|\
+       nbg-419n|\
+       nbg-419n2|\
+       newifi-d1|\
+       nixcore-x1-8M|\
+       nixcore-x1-16M|\
+       nw718|\
+       omega2|\
+       omega2p|\
+       oy-0001|\
+       pbr-d1|\
+       pbr-m1|\
+       psg1208|\
+       psg1218a|\
+       psg1218b|\
+       psr-680w|\
+       px-4885-4M|\
+       px-4885-8M|\
+       rb750gr3|\
+       re6500|\
+       rp-n53|\
+       rt5350f-olinuxino|\
+       rt5350f-olinuxino-evb|\
+       rt-ac51u|\
+       rt-g32-b1|\
+       rt-n10-plus|\
+       rt-n13u|\
+       rt-n14u|\
+       rt-n15|\
+       rt-n56u|\
+       rut5xx|\
+       sap-g3200u3|\
+       sk-wb8|\
+       sl-r7205|\
+       tew-691gr|\
+       tew-692gr|\
+       tew-714tru|\
+       timecloud|\
+       tiny-ac|\
+       ur-326n4g|\
+       ur-336un|\
+       v22rw-2x2|\
+       vocore-8M|\
+       vocore-16M|\
+       vocore2|\
+       vr500|\
+       w150m|\
+       w2914nsv2|\
+       w306r-v20|\
+       w502u|\
+       wf-2881|\
+       whr-1166d|\
+       whr-300hp2|\
+       whr-600d|\
+       whr-g300n|\
+       widora-neo|\
+       witi|\
+       wizfi630a|\
+       wl-330n|\
+       wl-330n3g|\
+       wl-341v3|\
+       wl-351|\
+       wl-wn575a3|\
+       wli-tx4-ag300n|\
+       wlr-6000|\
+       wmr-300|\
+       wn3000rpv3|\
+       wnce2001|\
+       wndr3700v5|\
+       wr512-3gn-4M|\
+       wr512-3gn-8M|\
+       wr6202|\
+       wrh-300cr|\
+       wrtnode|\
+       wrtnode2r |\
+       wrtnode2p |\
+       wsr-600|\
+       wt1520-4M|\
+       wt1520-8M|\
+       wt3020-4M|\
+       wt3020-8M|\
+       wzr-agl300nh|\
+       x5|\
+       x8|\
+       y1|\
+       y1s|\
+       zbt-ape522ii|\
+       zbt-cpe102|\
+       zbt-wa05|\
+       zbt-we1326|\
+       zbt-we2026|\
+       zbt-we826-16M|\
+       zbt-we826-32M|\
+       zbt-wg2626|\
+       zbt-wg3526-16M|\
+       zbt-wg3526-32M|\
+       zbt-wr8305rt|\
+       zte-q7|\
+       youku-yk1)
                [ "$magic" != "27051956" ] && {
                        echo "Invalid image type."
                        return 1
                }
                return 0
                ;;
-       wsr-1166)
-               [ "$magic" != "48445230" ] && {
+       3g-6200n|\
+       3g-6200nl|\
+       br-6475nd)
+               [ "$magic" != "43535953" ] && {
                        echo "Invalid image type."
                        return 1
                }
                return 0
                ;;
+
        ar670w)
                [ "$magic" != "6d000080" ] && {
                        echo "Invalid image type."
@@ -140,25 +227,38 @@ platform_check_image() {
                }
                return 0
                ;;
-       cy-swr1100 |\
-       dir-610-a1 |\
-       dir-645 |\
-       dir-860l-b1)
-               [ "$magic" != "5ea3a417" ] && {
+       c20i|\
+       c50|\
+       mr200)
+               [ "$magic" != "03000000" ] && {
                        echo "Invalid image type."
                        return 1
                }
                return 0
                ;;
-       br-6475nd)
-               [ "$magic" != "43535953" ] && {
+       cy-swr1100|\
+       dch-m225|\
+       dir-610-a1|\
+       dir-645|\
+       dir-860l-b1)
+               [ "$magic" != "5ea3a417" ] && {
                        echo "Invalid image type."
                        return 1
                }
                return 0
                ;;
-       c20i)
-               [ "$magic" != "03000000" ] && {
+       hc5962|\
+       r6220)
+               # these boards use metadata images
+               return 0
+               ;;
+       ubnt-erx)
+               nand_do_platform_check "$board" "$1"
+               return $?;
+               ;;
+       wcr-1166ds|\
+       wsr-1166)
+               [ "$magic" != "48445230" ] && {
                        echo "Invalid image type."
                        return 1
                }
@@ -170,6 +270,28 @@ platform_check_image() {
        return 1
 }
 
+platform_nand_pre_upgrade() {
+       local board=$(ramips_board_name)
+
+       case "$board" in
+       ubnt-erx)
+               platform_upgrade_ubnt_erx "$ARGV"
+               ;;
+       esac
+}
+
+platform_pre_upgrade() {
+       local board=$(ramips_board_name)
+
+       case "$board" in
+       hc5962|\
+       r6220|\
+       ubnt-erx)
+               nand_do_upgrade "$ARGV"
+               ;;
+       esac
+}
+
 platform_do_upgrade() {
        local board=$(ramips_board_name)
 
@@ -188,4 +310,9 @@ disable_watchdog() {
        }
 }
 
+blink_led() {
+       . /etc/diag.sh; set_state upgrade
+}
+
 append sysupgrade_pre_upgrade disable_watchdog
+append sysupgrade_pre_upgrade blink_led