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=f171aa667c6ed50fdd0e8a4c2f2e94c7b9d4b8a7;hp=454af2c3e6b808230b3300945a593b62d856aa15;hb=11a5128b983fdc78ffeac063bf9060116cad281b;hpb=9fec39a03388677ce5c8e56de8f049391b8c4ed7 diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 454af2c3e6..f171aa667c 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -7,7 +7,7 @@ PART_NAME=firmware RAMFS_COPY_DATA=/lib/ar71xx.sh -[ -x /usr/sbin/nandwrite ] && RAMFS_COPY_BIN=/usr/sbin/nandwrite +RAMFS_COPY_BIN='nandwrite' CI_BLKSZ=65536 CI_LDADR=0x80060000 @@ -93,26 +93,37 @@ 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"' } +tplink_pharos_check_support_list() { + local image="$1" + local offset="$2" + local model="$3" + local trargs="$4" + + # Here $image is given to dd directly instead of using get_image; + # otherwise the skip will take almost a second (as dd can't seek) + dd if="$image" bs=1 skip=$offset count=1024 2>/dev/null | tr -d "$trargs" | ( + while IFS= read -r line; do + [ "$line" = "$model" ] && exit 0 + done + + exit 1 + ) +} + tplink_pharos_check_image() { - local magic_long="$(get_magic_long "$1")" - [ "$magic_long" != "7f454c46" ] && { - echo "Invalid image magic '$magic_long'" + local image_magic="$(get_magic_long "$1")" + local board_magic="$2" + [ "$image_magic" != "$board_magic" ] && { + echo "Invalid image magic '$image_magic'. Expected '$board_magic'." return 1 } - local model_string="$(tplink_pharos_get_model_string)" - local line - - # Here $1 is given to dd directly instead of get_image as otherwise the skip - # will take almost a second (as dd can't seek then) - # - # This will fail if the image isn't local, but that's fine: as the - # read loop won't be executed at all, it will return true, so the 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 - [ "$line" = "$model_string" ] && break - done || { + local model_string="$3" + local trargs="$4" + + # New images have the support list at 7802888, old ones at 1511432 + tplink_pharos_check_support_list "$1" 7802888 "$model_string" "$trargs" || \ + tplink_pharos_check_support_list "$1" 1511432 "$model_string" "$trargs" || { echo "Unsupported image (model not in support-list)" return 1 } @@ -183,44 +194,45 @@ alfa_check_image() { return 0 } -platform_nand_board_name() { - local board=$(ar71xx_board_name) - - case "$board" in - rb*) echo "routerboard";; - *) echo "$board";; - esac -} - platform_check_image() { - local board=$(ar71xx_board_name) + local board=$(board_name) local magic="$(get_magic_word "$1")" local magic_long="$(get_magic_long "$1")" [ "$#" -gt 1 ] && return 1 case "$board" in - airgatewaypro|\ airgateway|\ + airgatewaypro|\ airrouter|\ + ap121f|\ ap132|\ ap531b0|\ ap90q|\ archer-c25-v1|\ + archer-c58-v1|\ archer-c59-v1|\ archer-c60-v1|\ + archer-c60-v2|\ + archer-c7-v4|\ + archer-c7-v5|\ bullet-m|\ c-55|\ carambola2|\ cf-e316n-v2|\ cf-e320n-v2|\ + cf-e355ac-v1|\ + cf-e355ac-v2|\ + cf-e375ac|\ cf-e380ac-v1|\ cf-e380ac-v2|\ + cf-e385ac|\ cf-e520n|\ cf-e530n|\ cpe505n|\ cpe830|\ cpe870|\ + dap-1330-a1|\ dgl-5500-a1|\ dhp-1565-a1|\ dir-505-a1|\ @@ -234,49 +246,65 @@ platform_check_image() { dlan-hotspot|\ dlan-pro-1200-ac|\ dlan-pro-500-wp|\ + dr342|\ dr531|\ dragino2|\ + e1700ac-v2|\ + e558-v2|\ + e600g-v2|\ + e600gac-v2|\ + e750a-v4|\ ebr-2310-c1|\ ens202ext|\ epg5000|\ esr1750|\ esr900|\ - ew-dorin-router|\ + ew-balin|\ ew-dorin|\ + ew-dorin-router|\ gl-ar150|\ gl-ar300m|\ gl-ar300|\ + gl-ar750|\ gl-domino|\ gl-mifi|\ + gl-usb150|\ hiwifi-hc6361|\ hornet-ub-x2|\ jwap230|\ + lbe-m5|\ lima|\ loco-m-xw|\ mzk-w04nu|\ mzk-w300nh|\ - nanostation-m-xw|\ + n5q|\ nanostation-m|\ + nanostation-m-xw|\ nbg460n_550n_550nh|\ pqi-air-pen|\ + r36a|\ r602n|\ + rme-eg200|\ + rocket-m|\ rocket-m-ti|\ rocket-m-xw|\ - rocket-m|\ rw2458n|\ sc1750|\ sc300m|\ sc450|\ sr3200|\ + t830|\ tew-632brp|\ tew-712br|\ tew-732br|\ tew-823dru|\ + tl-wr1043n-v5|\ tl-wr942n-v1|\ + unifi|\ unifi-outdoor|\ unifiac-lite|\ unifiac-pro|\ - unifi|\ + wam250|\ weio|\ whr-g301n|\ whr-hp-g300n|\ @@ -286,13 +314,14 @@ platform_check_image() { wpj342|\ wpj344|\ wpj531|\ + wpj558|\ wpj563|\ wrt400n|\ wrtnode2q|\ wzr-450hp2|\ wzr-hp-ag300h|\ - wzr-hp-g300nh2|\ wzr-hp-g300nh|\ + wzr-hp-g300nh2|\ wzr-hp-g450h|\ xd3200) [ "$magic" != "2705" ] && { @@ -304,13 +333,14 @@ platform_check_image() { ;; alfa-ap96|\ alfa-nx|\ - ap121-mini|\ ap121|\ + ap121-mini|\ ap135-020|\ ap136-010|\ ap136-020|\ ap147-010|\ ap152|\ + ap91-5g|\ ap96|\ arduino-yun|\ bhr-4grv2|\ @@ -322,7 +352,6 @@ platform_check_image() { hornet-ub|\ mr12|\ mr16|\ - wpj558|\ zbt-we1526|\ zcn-1523h-2|\ zcn-1523h-5) @@ -345,14 +374,14 @@ platform_check_image() { all0305|\ eap300v2|\ eap7660d|\ - ja76pf2|\ ja76pf|\ + ja76pf2|\ jwap003|\ ls-sr71|\ pb42|\ pb44|\ - routerstation-pro|\ routerstation|\ + routerstation-pro|\ wp543|\ wpe72) [ "$magic" != "4349" ] && { @@ -380,13 +409,19 @@ platform_check_image() { el-m150|\ el-mini|\ gl-inet|\ + lan-turtle|\ mc-mac1200r|\ minibox-v1|\ omy-g1|\ omy-x1|\ onion-omega|\ - oolite|\ + oolite-v1|\ + oolite-v5.2|\ + oolite-v5.2-dev|\ + packet-squirrel|\ + re355|\ re450|\ + rut900|\ smart-300|\ som9331|\ tellstick-znet-lite|\ @@ -395,12 +430,12 @@ platform_check_image() { tl-mr12u|\ tl-mr13u|\ tl-mr3020|\ - tl-mr3040-v2|\ tl-mr3040|\ - tl-mr3220-v2|\ + tl-mr3040-v2|\ tl-mr3220|\ - tl-mr3420-v2|\ + tl-mr3220-v2|\ tl-mr3420|\ + tl-mr3420-v2|\ tl-mr6400|\ tl-wa701nd-v2|\ tl-wa7210n-v2|\ @@ -413,10 +448,11 @@ platform_check_image() { tl-wa850re-v2|\ tl-wa855re-v1|\ tl-wa860re|\ + tl-wa901nd|\ tl-wa901nd-v2|\ tl-wa901nd-v3|\ tl-wa901nd-v4|\ - tl-wa901nd|\ + tl-wa901nd-v5|\ tl-wdr3320-v2|\ tl-wdr3500|\ tl-wdr4300|\ @@ -424,32 +460,37 @@ platform_check_image() { tl-wdr6500-v2|\ tl-wpa8630|\ tl-wr1041n-v2|\ + tl-wr1043nd|\ tl-wr1043nd-v2|\ tl-wr1043nd-v4|\ - tl-wr1043nd|\ tl-wr2543n|\ tl-wr703n|\ tl-wr710n|\ tl-wr720n-v3|\ tl-wr740n-v6|\ - tl-wr741nd-v4|\ tl-wr741nd|\ + tl-wr741nd-v4|\ tl-wr802n-v1|\ tl-wr802n-v2|\ tl-wr810n|\ + tl-wr810n-v2|\ tl-wr840n-v2|\ tl-wr840n-v3|\ - tl-wr841n-v11|\ tl-wr841n-v1|\ tl-wr841n-v7|\ tl-wr841n-v8|\ tl-wr841n-v9|\ + tl-wr841n-v11|\ tl-wr842n-v2|\ tl-wr842n-v3|\ + tl-wr902ac-v1|\ + tl-wr940n-v4|\ + tl-wr940n-v6|\ + tl-wr941nd|\ tl-wr941nd-v5|\ tl-wr941nd-v6|\ - tl-wr940n-v4|\ - tl-wr941nd) + ts-d084|\ + wifi-pineapple-nano) local magic_ver="0100" case "$board" in @@ -511,13 +552,15 @@ platform_check_image() { rb-911g-5hpacd|\ rb-912uag-2hpnd|\ rb-912uag-5hpnd|\ + rb-921gs-5hpacd-r2|\ rb-951g-2hnd|\ rb-951ui-2hnd|\ rb-2011l|\ rb-2011il|\ + rb-2011ils|\ rb-2011uas|\ - rb-2011uias|\ rb-2011uas-2hnd|\ + rb-2011uias|\ rb-2011uias-2hnd|\ rb-sxt2n|\ rb-sxt5n) @@ -529,6 +572,7 @@ platform_check_image() { nbg6716|\ r6100|\ rambutan|\ + wi2a-ac200i|\ wndr3700v4|\ wndr4300) nand_do_platform_check $board $1 @@ -539,29 +583,33 @@ platform_check_image() { eap120|\ wbs210|\ wbs510) - tplink_pharos_check_image "$1" && return 0 + tplink_pharos_check_image "$1" "7f454c46" "$(tplink_pharos_get_model_string)" '' && return 0 + return 1 + ;; + cpe210-v2) + tplink_pharos_check_image "$1" "01000000" "$(tplink_pharos_v2_get_model_string)" '\0\xff\r' && return 0 return 1 ;; a40|\ a60|\ - mr1750v2|\ mr1750|\ - mr600v2|\ + mr1750v2|\ mr600|\ - mr900v2|\ + mr600v2|\ mr900|\ + mr900v2|\ + om2p|\ + om2p-hs|\ om2p-hsv2|\ om2p-hsv3|\ om2p-hsv4|\ - om2p-hs|\ om2p-lc|\ om2pv2|\ om2pv4|\ - om2p|\ - om5p-acv2|\ + om5p|\ om5p-ac|\ - om5p-an|\ - om5p) + om5p-acv2|\ + om5p-an) platform_check_image_openmesh "$magic_long" "$1" && return 0 return 1 ;; @@ -649,14 +697,23 @@ platform_check_image() { ;; # these boards use metadata images fritz300e|\ + fritz4020|\ + fritz450e|\ + koala|\ rb-750-r2|\ + rb-750p-pbr2|\ rb-750up-r2|\ + rb-911-2hn|\ + rb-911-5hn|\ rb-941-2nd|\ rb-951ui-2nd|\ rb-952ui-5ac2nd|\ rb-962uigs-5hact2hnt|\ rb-lhg-5nd|\ - rb-mapl-2nd) + rb-map-2nd|\ + rb-mapl-2nd|\ + rb-wap-2nd|\ + rb-wapg-5hact2hnd) return 0 ;; esac @@ -666,66 +723,31 @@ platform_check_image() { } platform_pre_upgrade() { - local board=$(ar71xx_board_name) + local board=$(board_name) case "$board" in - c-60|\ - hiveap-121|\ - 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" - ;; rb-750-r2|\ + rb-750p-pbr2|\ rb-750up-r2|\ + rb-911-2hn|\ + rb-911-5hn|\ rb-941-2nd|\ rb-951ui-2nd|\ rb-952ui-5ac2nd|\ rb-962uigs-5hact2hnt|\ rb-lhg-5nd|\ - rb-mapl-2nd) + rb-map-2nd|\ + rb-mapl-2nd|\ + rb-wap-2nd|\ + rb-wapg-5hact2hnd) # erase firmware if booted from initramfs [ -z "$(rootfs_type)" ] && mtd erase firmware ;; - mr18|\ - z1) - merakinand_do_upgrade "$1" - ;; esac } platform_nand_pre_upgrade() { - local board=$(ar71xx_board_name) + local board=$(board_name) case "$board" in rb*) @@ -736,11 +758,28 @@ platform_nand_pre_upgrade() { mtd erase kernel tar xf "$1" sysupgrade-routerboard/kernel -O | nandwrite -o "$fw_mtd" - ;; + wi2a-ac200i) + case "$(fw_printenv -n dualPartition)" in + imgA) + fw_setenv dualPartition imgB + fw_setenv ActImg NokiaImageB + ;; + imgB) + fw_setenv dualPartition imgA + fw_setenv ActImg NokiaImageA + ;; + esac + ubiblock -r /dev/ubiblock0_0 2>/dev/null >/dev/null + rm -f /dev/ubiblock0_0 + ubidetach -d 0 2>/dev/null >/dev/null + CI_UBIPART=ubi_alt + CI_KERNPART=kernel_alt + ;; esac } platform_do_upgrade() { - local board=$(ar71xx_board_name) + local board=$(board_name) case "$board" in all0258n) @@ -748,14 +787,14 @@ platform_do_upgrade() { ;; all0305|\ eap7660d|\ - ja76pf2|\ ja76pf|\ + ja76pf2|\ jwap003|\ ls-sr71|\ pb42|\ pb44|\ - routerstation-pro|\ - routerstation) + routerstation|\ + routerstation-pro) platform_do_upgrade_combined "$ARGV" ;; all0315n) @@ -772,26 +811,70 @@ platform_do_upgrade() { ;; a40|\ a60|\ - mr1750v2|\ mr1750|\ - mr600v2|\ + mr1750v2|\ mr600|\ - mr900v2|\ + mr600v2|\ mr900|\ + mr900v2|\ + om2p|\ + om2p-hs|\ om2p-hsv2|\ om2p-hsv3|\ om2p-hsv4|\ - om2p-hs|\ om2p-lc|\ om2pv2|\ om2pv4|\ - om2p|\ - om5p-acv2|\ + om5p|\ om5p-ac|\ - om5p-an|\ - om5p) + om5p-acv2|\ + om5p-an) platform_do_upgrade_openmesh "$ARGV" ;; + c-60|\ + hiveap-121|\ + 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-5hpacd|\ + rb-911g-5hpnd|\ + rb-912uag-2hpnd|\ + rb-912uag-5hpnd|\ + rb-921gs-5hpacd-r2|\ + rb-951g-2hnd|\ + rb-951ui-2hnd|\ + rb-2011il|\ + rb-2011ils|\ + rb-2011l|\ + rb-2011uas|\ + rb-2011uas-2hnd|\ + rb-2011uias|\ + rb-2011uias-2hnd|\ + rb-sxt2n|\ + rb-sxt5n|\ + wi2a-ac200i|\ + wndr3700v4|\ + wndr4300) + nand_do_upgrade "$1" + ;; + mr18|\ + z1) + merakinand_do_upgrade "$1" + ;; uap-pro|\ unifi-outdoor-plus) MTD_CONFIG_ARGS="-s 0x180000" @@ -806,13 +889,3 @@ platform_do_upgrade() { ;; esac } - -disable_watchdog() { - killall watchdog - ( ps | grep -v 'grep' | grep '/dev/watchdog' ) && { - echo 'Could not disable watchdog' - return 1 - } -} - -append sysupgrade_pre_upgrade disable_watchdog