X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Fbase-files%2Flib%2Fupgrade%2Fplatform.sh;h=9c0f3f3bc57d05d6e8c273b55a3fff768947bc81;hp=fb9add68775f17a482585002f6bece424643ad5c;hb=e3875350f3e4185020b64e0588bba521cd1d6e64;hpb=4463bc017beba6be6c484f0ff5e9d381debafe38 diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index fb9add6877..9c0f3f3bc5 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -66,6 +66,10 @@ tplink_get_image_hwid() { get_image "$@" | dd bs=4 count=1 skip=16 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' } +tplink_get_image_mid() { + get_image "$@" | dd bs=4 count=1 skip=17 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' +} + tplink_get_image_boot_size() { get_image "$@" | dd bs=4 count=1 skip=37 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' } @@ -101,6 +105,10 @@ seama_get_type_magic() { get_image "$@" | dd bs=1 count=4 skip=53 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' } +wrgg_get_image_magic() { + get_image "$@" | dd bs=4 count=1 skip=8 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' +} + cybertan_get_image_magic() { get_image "$@" | dd bs=8 count=1 skip=0 2>/dev/null | hexdump -v -n 8 -e '1/1 "%02x"' } @@ -145,7 +153,6 @@ alfa_check_image() { return 1 } ;; - "68737173") [ "$fw_part_size" != "7929856" ] && { echo "Invalid image magic \"$magic_long\" for $fw_part_size bytes" @@ -165,212 +172,246 @@ platform_check_image() { [ "$#" -gt 1 ] && return 1 case "$board" in - all0315n | \ - all0258n | \ - cap4200ag) - platform_check_image_allnet "$1" && return 0 - return 1 - ;; - alfa-ap96 | \ - alfa-nx | \ - ap113 | \ - ap121 | \ - ap121-mini | \ - ap136-010 | \ - ap136-020 | \ - ap135-020 | \ - ap147-010 | \ - ap96 | \ - bxu2000n-2-a1 | \ - db120 | \ - f9k1115v2 |\ - hornet-ub | \ - mr12 | \ - mr16 | \ - wpj558 | \ - zcn-1523h-2 | \ - zcn-1523h-5) - [ "$magic_long" != "68737173" -a "$magic_long" != "19852003" ] && { + airgatewaypro|\ + airgateway|\ + airrouter|\ + ap132|\ + ap81|\ + ap83|\ + bullet-m|\ + c-55|\ + carambola2|\ + cf-e316n-v2|\ + dgl-5500-a1|\ + dhp-1565-a1|\ + dir-505-a1|\ + dir-600-a1|\ + dir-615-c1|\ + dir-615-e1|\ + dir-615-e4|\ + dir-615-i1|\ + dir-825-c1|\ + dir-835-a1|\ + dlan-hotspot|\ + dlan-pro-1200-ac|\ + dlan-pro-500-wp|\ + dr531|\ + dragino2|\ + epg5000|\ + esr1750|\ + esr900|\ + ew-dorin-router|\ + ew-dorin|\ + gl-ar150|\ + gl-ar300m|\ + gl-ar300|\ + gl-domino|\ + gl-mifi|\ + hiwifi-hc6361|\ + hornet-ub-x2|\ + jwap230|\ + loco-m-xw|\ + mzk-w04nu|\ + mzk-w300nh|\ + nanostation-m-xw|\ + nanostation-m|\ + nbg460n_550n_550nh|\ + rocket-m-ti|\ + rocket-m-xw|\ + rocket-m|\ + rw2458n|\ + tew-632brp|\ + tew-712br|\ + tew-732br|\ + tew-823dru|\ + unifi-outdoor|\ + unifiac-lite|\ + unifiac-pro|\ + unifi|\ + weio|\ + whr-g301n|\ + whr-hp-g300n|\ + whr-hp-gn|\ + wlae-ag300n|\ + wndap360|\ + wpj342|\ + wpj344|\ + wpj531|\ + wrt400n|\ + wrtnode2q|\ + wzr-450hp2|\ + wzr-hp-ag300h|\ + wzr-hp-g300nh2|\ + wzr-hp-g300nh|\ + wzr-hp-g450h) + [ "$magic" != "2705" ] && { echo "Invalid image type." return 1 } + return 0 ;; - ap81 | \ - ap83 | \ - ap132 | \ - dgl-5500-a1 |\ - dhp-1565-a1 |\ - dir-505-a1 | \ - dir-600-a1 | \ - dir-615-c1 | \ - dir-615-e1 | \ - dir-615-e4 | \ - dir-615-i1 | \ - dir-825-c1 | \ - dir-835-a1 | \ - dlan-pro-500-wp | \ - dlan-pro-1200-ac | \ - dragino2 | \ - epg5000 | \ - esr1750 | \ - esr900 | \ - ew-dorin | \ - ew-dorin-router | \ - hiwifi-hc6361 | \ - hornet-ub-x2 | \ - mzk-w04nu | \ - mzk-w300nh | \ - tew-632brp | \ - tew-712br | \ - tew-732br | \ - wrt400n | \ - airgateway | \ - airrouter | \ - bullet-m | \ - loco-m-xw | \ - nanostation-m | \ - rocket-m | \ - rocket-m-xw | \ - rocket-m-ti | \ - nanostation-m-xw | \ - rw2458n | \ - wpj531 | \ - wndap360 | \ - wpj344 | \ - wzr-hp-g300nh2 | \ - wzr-hp-g300nh | \ - wzr-hp-g450h | \ - wzr-hp-ag300h | \ - wzr-450hp2 | \ - whr-g301n | \ - whr-hp-g300n | \ - whr-hp-gn | \ - wlae-ag300n | \ - nbg460n_550n_550nh | \ - unifi | \ - unifi-outdoor | \ - carambola2 ) - [ "$magic" != "2705" ] && { + alfa-ap96|\ + alfa-nx|\ + ap113|\ + ap121-mini|\ + ap121|\ + ap135-020|\ + ap136-010|\ + ap136-020|\ + ap147-010|\ + ap152|\ + ap96|\ + arduino-yun|\ + bxu2000n-2-a1|\ + db120|\ + dr344|\ + dw33d|\ + f9k1115v2|\ + hornet-ub|\ + mr12|\ + mr16|\ + wpj558|\ + zbt-we1526|\ + zcn-1523h-2|\ + zcn-1523h-5) + [ "$magic_long" != "68737173" -a "$magic_long" != "19852003" ] && { echo "Invalid image type." return 1 } - return 0 - ;; - - cpe510) - tplink_pharos_check_image "$1" && return 0 - return 1 - ;; - bsb | \ - dir-825-b1 | \ - tew-673gru) - dir825b_check_image "$1" && return 0 + return 0 ;; - - mynet-rext|\ - wrt160nl) - cybertan_check_image "$1" && return 0 + all0258n|\ + all0315n|\ + cap324|\ + cap4200ag|\ + cr3000|\ + cr5000) + platform_check_image_allnet "$1" && return 0 return 1 ;; - - qihoo-c301 | \ - mynet-n600 | \ - mynet-n750) - [ "$magic_long" != "5ea3a417" ] && { - echo "Invalid image, bad magic: $magic_long" + all0305|\ + eap300v2|\ + eap7660d|\ + ja76pf2|\ + ja76pf|\ + jwap003|\ + ls-sr71|\ + pb42|\ + pb44|\ + routerstation-pro|\ + routerstation|\ + wp543|\ + wpe72) + [ "$magic" != "4349" ] && { + echo "Invalid image. Use *-sysupgrade.bin files on this board" return 1 } - local typemagic=$(seama_get_type_magic "$1") - [ "$typemagic" != "6669726d" ] && { - echo "Invalid image, bad type: $typemagic" + local md5_img=$(dd if="$1" bs=2 skip=9 count=16 2>/dev/null) + local md5_chk=$(dd if="$1" bs=$CI_BLKSZ skip=1 2>/dev/null | md5sum -); md5_chk="${md5_chk%% *}" + + if [ -n "$md5_img" -a -n "$md5_chk" ] && [ "$md5_img" = "$md5_chk" ]; then + return 0 + else + echo "Invalid image. Contents do not match checksum (image:$md5_img calculated:$md5_chk)" return 1 - } + fi - return 0; - ;; - mr600 | \ - mr600v2 | \ - mr900 | \ - mr900v2 | \ - om2p | \ - om2pv2 | \ - om2p-hs | \ - om2p-hsv2 | \ - om2p-lc | \ - om5p | \ - om5p-an) - platform_check_image_openmesh "$magic_long" "$1" && return 0 - return 1 + return 0 ;; + antminer-s1|\ + antminer-s3|\ + antrouter-r1|\ + archer-c5|\ + archer-c7|\ + el-m150|\ + el-mini|\ + gl-inet|\ + mc-mac1200r|\ + minibox-v1|\ + omy-g1|\ + omy-x1|\ + onion-omega|\ + oolite|\ + smart-300|\ + som9331|\ + tellstick-znet-lite|\ + tl-mr10u|\ + tl-mr11u|\ + tl-mr12u|\ + tl-mr13u|\ + tl-mr3020|\ + tl-mr3040-v2|\ + tl-mr3040|\ + tl-mr3220-v2|\ + tl-mr3220|\ + tl-mr3420-v2|\ + tl-mr3420|\ + tl-wa701nd-v2|\ + tl-wa7210n-v2|\ + tl-wa750re|\ + tl-wa7510n|\ + tl-wa801nd-v2|\ + tl-wa830re-v2|\ + tl-wa850re|\ + tl-wa860re|\ + tl-wa901nd-v2|\ + tl-wa901nd-v3|\ + tl-wa901nd-v4|\ + tl-wa901nd|\ + tl-wdr3320-v2|\ + tl-wdr3500|\ + tl-wdr4300|\ + tl-wdr4900-v2|\ + tl-wdr6500-v2|\ + tl-wr1041n-v2|\ + tl-wr1043nd-v2|\ + tl-wr1043nd|\ + tl-wr2543n|\ + tl-wr703n|\ + tl-wr710n|\ + tl-wr720n-v3|\ + tl-wr741nd-v4|\ + tl-wr741nd|\ + tl-wr802n-v1|\ + tl-wr810n|\ + tl-wr841n-v11|\ + tl-wr841n-v1|\ + tl-wr841n-v7|\ + tl-wr841n-v8|\ + tl-wr841n-v9|\ + tl-wr842n-v2|\ + tl-wr842n-v3|\ + tl-wr941nd-v5|\ + tl-wr941nd-v6|\ + tl-wr941nd) + local magic_ver="0100" + + case "$board" in + tl-wdr6500-v2) + magic_ver="0200" + ;; + esac - antminer-s1 | \ - antminer-s3 | \ - archer-c5 | \ - archer-c7 | \ - el-m150 | \ - el-mini | \ - gl-inet | \ - mc-mac1200r | \ - onion-omega | \ - oolite | \ - smart-300 | \ - tl-mr10u | \ - tl-mr11u | \ - tl-mr12u | \ - tl-mr13u | \ - tl-mr3020 | \ - tl-mr3040 | \ - tl-mr3040-v2 | \ - tl-mr3220 | \ - tl-mr3220-v2 | \ - tl-mr3420 | \ - tl-mr3420-v2 | \ - tl-wa701nd-v2 | \ - tl-wa7210n-v2 | \ - tl-wa7510n | \ - tl-wa750re | \ - tl-wa850re | \ - tl-wa860re | \ - tl-wa801nd-v2 | \ - tl-wa901nd | \ - tl-wa901nd-v2 | \ - tl-wa901nd-v3 | \ - tl-wdr3500 | \ - tl-wdr4300 | \ - tl-wdr4900-v2 | \ - tl-wr703n | \ - tl-wr710n | \ - tl-wr720n-v3 | \ - tl-wr741nd | \ - tl-wr741nd-v4 | \ - tl-wr841n-v1 | \ - tl-wa830re-v2 | \ - tl-wr841n-v7 | \ - tl-wr841n-v8 | \ - tl-wr841n-v9 | \ - tl-wr842n-v2 | \ - tl-wr941nd | \ - tl-wr941nd-v5 | \ - tl-wr1041n-v2 | \ - tl-wr1043nd | \ - tl-wr1043nd-v2 | \ - tl-wr2543n) - [ "$magic" != "0100" ] && { + [ "$magic" != "$magic_ver" ] && { echo "Invalid image type." return 1 } local hwid - local imageid + local mid + local imagehwid + local imagemid hwid=$(tplink_get_hwid) - imageid=$(tplink_get_image_hwid "$1") + mid=$(tplink_get_mid) + imagehwid=$(tplink_get_image_hwid "$1") + imagemid=$(tplink_get_image_mid "$1") - [ "$hwid" != "$imageid" ] && { - echo "Invalid image, hardware ID mismatch, hw:$hwid image:$imageid." + [ "$hwid" != "$imagehwid" -o "$mid" != "$imagemid" ] && { + echo "Invalid image, hardware ID mismatch, hw:$hwid $mid image:$imagehwid $imagemid." return 1 } @@ -384,24 +425,90 @@ platform_check_image() { return 0 ;; - - tube2h) - alfa_check_image "$1" && return 0 + bsb|\ + dir-825-b1|\ + tew-673gru) + dir825b_check_image "$1" && return 0 + ;; + c-60|\ + nbg6716|\ + r6100|\ + wndr3700v4|\ + wndr4300) + nand_do_platform_check $board $1 + return $? + ;; + cpe210|\ + cpe510|\ + eap120) + tplink_pharos_check_image "$1" && return 0 + return 1 + ;; + mr1750v2|\ + mr1750|\ + mr600v2|\ + mr600|\ + mr900v2|\ + mr900|\ + om2p-hsv2|\ + om2p-hsv3|\ + om2p-hs|\ + om2p-lc|\ + om2pv2|\ + om2p|\ + om5p-acv2|\ + om5p-ac|\ + om5p-an|\ + om5p) + platform_check_image_openmesh "$magic_long" "$1" && return 0 return 1 ;; + mr18|\ + z1) + merakinand_do_platform_check $board $1 + return $? + ;; + dir-869-a1|\ + mynet-n600|\ + mynet-n750|\ + qihoo-c301) + [ "$magic_long" != "5ea3a417" ] && { + echo "Invalid image, bad magic: $magic_long" + return 1 + } + + local typemagic=$(seama_get_type_magic "$1") + [ "$typemagic" != "6669726d" ] && { + echo "Invalid image, bad type: $typemagic" + return 1 + } - unifi-outdoor-plus | \ - uap-pro) + return 0 + ;; + mynet-rext|\ + wrt160nl) + cybertan_check_image "$1" && return 0 + return 1 + ;; + nbg6616|\ + uap-pro|\ + unifi-outdoor-plus) [ "$magic_long" != "19852003" ] && { echo "Invalid image type." return 1 } + return 0 ;; - wndr3700 | \ - wnr2000-v3 | \ - wnr612-v2 | \ - wnr1000-v2) + tube2h) + alfa_check_image "$1" && return 0 + return 1 + ;; + wndr3700|\ + wnr1000-v2|\ + wnr2000-v3|\ + wnr612-v2|\ + wpn824n) local hw_magic hw_magic="$(ar71xx_get_mtd_part_magic firmware)" @@ -409,52 +516,34 @@ platform_check_image() { echo "Invalid image, hardware ID mismatch, hw:$hw_magic image:$magic_long." return 1 } + return 0 ;; - nbg6716 | \ - r6100 | \ - wndr3700v4 | \ - wndr4300 ) - nand_do_platform_check $board $1 - return $?; - ;; - routerstation | \ - routerstation-pro | \ - ls-sr71 | \ - pb42 | \ - pb44 | \ - all0305 | \ - eap300v2 | \ - eap7660d | \ - ja76pf | \ - ja76pf2 | \ - jwap003 | \ - wp543 | \ - wpe72) - [ "$magic" != "4349" ] && { - echo "Invalid image. Use *-sysupgrade.bin files on this board" + wnr2000-v4) + [ "$magic_long" != "32303034" ] && { + echo "Invalid image type." return 1 } - local md5_img=$(dd if="$1" bs=2 skip=9 count=16 2>/dev/null) - local md5_chk=$(dd if="$1" bs=$CI_BLKSZ skip=1 2>/dev/null | md5sum -); md5_chk="${md5_chk%% *}" - - if [ -n "$md5_img" -a -n "$md5_chk" ] && [ "$md5_img" = "$md5_chk" ]; then - return 0 - else - echo "Invalid image. Contents do not match checksum (image:$md5_img calculated:$md5_chk)" - return 1 - fi return 0 ;; - wnr2000-v4) - [ "$magic_long" != "32303034" ] && { + wnr2200) + [ "$magic_long" != "32323030" ] && { echo "Invalid image type." return 1 } + return 0 ;; + dap-2695-a1) + local magic=$(wrgg_get_image_magic "$1") + [ "$magic" != "21030820" ] && { + echo "Invalid image, bad type: $magic" + return 1 + } + return 0; + ;; esac echo "Sysupgrade is not yet supported on $board." @@ -465,12 +554,17 @@ platform_pre_upgrade() { local board=$(ar71xx_board_name) case "$board" in - nbg6716 | \ - r6100 | \ - wndr3700v4 | \ - wndr4300 ) + c-60|\ + nbg6716|\ + r6100|\ + wndr3700v4|\ + wndr4300) nand_do_upgrade "$1" ;; + mr18|\ + z1) + merakinand_do_upgrade "$1" + ;; esac } @@ -478,54 +572,59 @@ platform_do_upgrade() { local board=$(ar71xx_board_name) case "$board" in - routerstation | \ - routerstation-pro | \ - ls-sr71 | \ - all0305 | \ - eap7660d | \ - pb42 | \ - pb44 | \ - ja76pf | \ - ja76pf2 | \ - jwap003) - platform_do_upgrade_combined "$ARGV" - ;; - wp543|\ - wpe72) - platform_do_upgrade_compex "$ARGV" - ;; - all0258n ) + all0258n) platform_do_upgrade_allnet "0x9f050000" "$ARGV" ;; - all0315n ) + all0305|\ + eap7660d|\ + ja76pf2|\ + ja76pf|\ + jwap003|\ + ls-sr71|\ + pb42|\ + pb44|\ + routerstation-pro|\ + routerstation) + platform_do_upgrade_combined "$ARGV" + ;; + all0315n) platform_do_upgrade_allnet "0x9f080000" "$ARGV" ;; - eap300v2 |\ - cap4200ag) + cap4200ag|\ + eap300v2) platform_do_upgrade_allnet "0xbf0a0000" "$ARGV" ;; - dir-825-b1 |\ + dir-825-b1|\ tew-673gru) platform_do_upgrade_dir825b "$ARGV" ;; - mr600 | \ - mr600v2 | \ - mr900 | \ - mr900v2 | \ - om2p | \ - om2pv2 | \ - om2p-hs | \ - om2p-hsv2 | \ - om2p-lc | \ - om5p | \ - om5p-an) + mr1750v2|\ + mr1750|\ + mr600v2|\ + mr600|\ + mr900v2|\ + mr900|\ + om2p-hsv2|\ + om2p-hsv3|\ + om2p-hs|\ + om2p-lc|\ + om2pv2|\ + om2p|\ + om5p-acv2|\ + om5p-ac|\ + om5p-an|\ + om5p) platform_do_upgrade_openmesh "$ARGV" ;; - unifi-outdoor-plus | \ - uap-pro) + uap-pro|\ + unifi-outdoor-plus) MTD_CONFIG_ARGS="-s 0x180000" default_do_upgrade "$ARGV" ;; + wp543|\ + wpe72) + platform_do_upgrade_compex "$ARGV" + ;; *) default_do_upgrade "$ARGV" ;;