ramips: add suport for ZBT APE522II
[openwrt/openwrt.git] / target / linux / ramips / base-files / lib / upgrade / platform.sh
index c85ee0f703c6852f331edf0e1489d414c713314b..e3bea004fa9f4684c2d256bbdea072a2d783ddbc 100755 (executable)
@@ -11,95 +11,166 @@ platform_check_image() {
        local board=$(ramips_board_name)
        local magic="$(get_magic_long "$1")"
 
-       [ "$ARGC" -gt 1 ] && return 1
+       [ "$#" -gt 1 ] && return 1
 
        case "$board" in
-       3g-6200n | \
-       3g-6200nl | \
-       3g300m | \
-       w150m | \
-       air3gii | \
-       all0239-3g | \
-       all0256n | \
-       all5002 | \
-       all5003 | \
-       ar725w | \
-       asl26555 | \
-       awm002-evb | \
-       bc2 | \
-       broadway | \
-       carambola | \
-       d105 | \
-       dcs-930 | \
-       dir-300-b1 | \
-       dir-300-b7 | \
-       dir-320-b1 | \
-       dir-600-b1 | \
-       dir-600-b2 | \
-       dir-615-h1 | \
-       dir-615-d | \
-       dir-620-a1 | \
-       dir-620-d1 | \
-       dir-810l | \
-       dap-1350 | \
-       esr-9753 | \
-       f7c027 | \
-       fonera20n | \
-       rt-n13u | \
-       freestation5 | \
-       hw550-3g | \
-       hg255d | \
-       hlk-rm04 | \
-       ip2202 | \
-       m3 | \
-       m4 | \
-       mofi3500-3gn | \
-       mpr-a1 | \
-       mpr-a2 | \
-       mzk-w300nh2 | \
-       nbg-419n | \
-       nw718 | \
-       omni-emb | \
-       omni-emb-hpm | \
-       psr-680w | \
-       px4885 | \
-       rp-n53 | \
-       rt-g32-b1 | \
-       rt-n10-plus | \
-       rt-n14u | \
-       rt-n15 | \
-       rt-n56u | \
-       rut5xx | \
-       sl-r7205 | \
-       tew-691gr | \
-       tew-692gr | \
-       w306r-v20 |\
-       w502u |\
-       wr6202 |\
-       v22rw-2x2 | \
-       wl341v3 | \
-       wl-330n | \
-       wl-330n3g | \
-       wl-351 | \
-       wnce2001 | \
-       wli-tx4-ag300n | \
-       whr-g300n |\
-       ur-326n4g |\
-       ur-336un |\
-       wr512-3gn |\
-       wmr300 |\
-       wrtnode |\
-       x5 |\
-       x8)
+       3g150b|\
+       3g300m|\
+       3g-6200n|\
+       3g-6200nl|\
+       a5-v11|\
+       ai-br100|\
+       air3gii|\
+       all0239-3g|\
+       all0256n|\
+       all5002|\
+       all5003|\
+       ar725w|\
+       asl26555|\
+       awapn2403|\
+       awm002-evb|\
+       awm003-evb|\
+       bc2|\
+       broadway|\
+       carambola|\
+       cf-wr800n|\
+       cs-qr10|\
+       d105|\
+       dap-1350|\
+       db-wrt01|\
+       dcs-930|\
+       dcs-930l-b1|\
+       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|\
+       duzun-dm06|\
+       e1700|\
+       esr-9753|\
+       ex2700|\
+       f7c027|\
+       firewrt|\
+       fonera20n|\
+       freestation5|\
+       gl-mt300a|\
+       gl-mt300n|\
+       gl-mt750|\
+       hc5*61|\
+       hg255d|\
+       hlk-rm04|\
+       hpm|\
+       ht-tm02|\
+       hw550-3g|\
+       ip2202|\
+       jhr-n805r|\
+       jhr-n825r|\
+       jhr-n926r|\
+       linkits7688|\
+       linkits7688d|\
+       m2m|\
+       m3|\
+       m4|\
+       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|\
+       nw718|\
+       oy-0001|\
+       pbr-m1|\
+       psg1208|\
+       psr-680w|\
+       px-4885|\
+       re6500|\
+       rp-n53|\
+       rt5350f-olinuxino|\
+       rt5350f-olinuxino-evb|\
+       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|\
+       tiny-ac|\
+       ur-326n4g|\
+       ur-336un|\
+       v22rw-2x2|\
+       vocore|\
+       w150m|\
+       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|\
+       wli-tx4-ag300n|\
+       wmr-300|\
+       wnce2001|\
+       wndr3700v5|\
+       wr512-3gn|\
+       wr6202|\
+       wrh-300cr|\
+       wrtnode|\
+       wrtnode2r |\
+       wrtnode2p |\
+       wsr-600|\
+       wt1520|\
+       wt3020|\
+       wzr-agl300nh|\
+       x5|\
+       x8|\
+       y1|\
+       y1s|\
+       zbt-ape522ii|\
+       zbt-wa05|\
+       zbt-we826|\
+       zbt-wg2626|\
+       zbt-wg3526|\
+       zbt-wr8305rt|\
+       zte-q7|\
+       youku-yk1)
                [ "$magic" != "27051956" ] && {
                        echo "Invalid image type."
                        return 1
                }
                return 0
                ;;
-       dir-610-a1 |\
-       dir-645)
-               [ "$magic" != "5ea3a417" ] && {
+       ar670w)
+               [ "$magic" != "6d000080" ] && {
                        echo "Invalid image type."
                        return 1
                }
@@ -112,12 +183,61 @@ platform_check_image() {
                }
                return 0
                ;;
+       c20i|\
+       c50)
+               [ "$magic" != "03000000" ] && {
+                       echo "Invalid image type."
+                       return 1
+               }
+               return 0
+               ;;
+       cy-swr1100|\
+       dir-610-a1|\
+       dir-645|\
+       dir-860l-b1)
+               [ "$magic" != "5ea3a417" ] && {
+                       echo "Invalid image type."
+                       return 1
+               }
+               return 0
+               ;;
+       wsr-1166)
+               [ "$magic" != "48445230" ] && {
+                       echo "Invalid image type."
+                       return 1
+               }
+               return 0
+               ;;
+       ubnt-erx)
+               nand_do_platform_check "$board" "$1"
+               return $?;
+               ;;
        esac
 
        echo "Sysupgrade is not yet supported on $board."
        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
+       ubnt-erx)
+               nand_do_upgrade "$ARGV"
+               ;;
+       esac
+}
+
 platform_do_upgrade() {
        local board=$(ramips_board_name)
 
@@ -136,4 +256,9 @@ disable_watchdog() {
        }
 }
 
+blink_led() {
+       . /etc/diag.sh; set_state upgrade
+}
+
 append sysupgrade_pre_upgrade disable_watchdog
+append sysupgrade_pre_upgrade blink_led