diff options
author | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2018-09-14 22:25:09 +0200 |
---|---|---|
committer | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2018-09-14 22:25:09 +0200 |
commit | 3362d9fb3a94d0909b79c290abc8db6abe4cca21 (patch) | |
tree | 35f9e4dfaeb691fe09fcd95b45dc440f0338a1b5 /target/linux/ar71xx/base-files/lib | |
parent | 51e1f1476f74d6788b106a066dfebd8ec6ac1bd9 (diff) | |
download | mtk-20170518-3362d9fb3a94d0909b79c290abc8db6abe4cca21.zip mtk-20170518-3362d9fb3a94d0909b79c290abc8db6abe4cca21.tar.gz mtk-20170518-3362d9fb3a94d0909b79c290abc8db6abe4cca21.tar.bz2 |
target/linux : drop many arch
Diffstat (limited to 'target/linux/ar71xx/base-files/lib')
9 files changed, 0 insertions, 1891 deletions
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh deleted file mode 100755 index 80a607c..0000000 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ /dev/null @@ -1,768 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2009-2011 OpenWrt.org -# - -AR71XX_BOARD_NAME= -AR71XX_MODEL= - -ar71xx_get_mtd_offset_size_format() { - local mtd="$1" - local offset="$2" - local size="$3" - local format="$4" - local dev - - dev=$(find_mtd_part $mtd) - [ -z "$dev" ] && return - - dd if=$dev bs=1 skip=$offset count=$size 2>/dev/null | hexdump -v -e "1/1 \"$format\"" -} - -ar71xx_get_mtd_part_magic() { - local mtd="$1" - ar71xx_get_mtd_offset_size_format "$mtd" 0 4 %02x -} - -wndr3700_board_detect() { - local machine="$1" - local magic - local name - - name="wndr3700" - - magic="$(ar71xx_get_mtd_part_magic firmware)" - case $magic in - "33373030") - machine="NETGEAR WNDR3700" - ;; - "33373031") - local model - model=$(ar71xx_get_mtd_offset_size_format art 56 10 %c) - if [ -z "$model" ] || [ "$model" = $'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' ]; then - machine="NETGEAR WNDR3700v2" - elif [ -z "$model" ] || [ "$model" = $'\xff\xff\xff\xff\xff\xff\xff\xff\xffN' ]; then - machine="NETGEAR WNDRMAC" - else - machine="NETGEAR $model" - fi - ;; - esac - - AR71XX_BOARD_NAME="$name" - AR71XX_MODEL="$machine" -} - -cybertan_get_hw_magic() { - local part - - part=$(find_mtd_part firmware) - [ -z "$part" ] && return 1 - - dd bs=8 count=1 skip=0 if=$part 2>/dev/null | hexdump -v -n 8 -e '1/1 "%02x"' -} - -tplink_get_hwid() { - local part - - part=$(find_mtd_part firmware) - [ -z "$part" ] && return 1 - - dd if=$part bs=4 count=1 skip=16 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' -} - -tplink_get_mid() { - local part - - part=$(find_mtd_part firmware) - [ -z "$part" ] && return 1 - - dd if=$part bs=4 count=1 skip=17 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' -} - -tplink_board_detect() { - local model="$1" - local hwid - local hwver - - hwid=$(tplink_get_hwid) - mid=$(tplink_get_mid) - hwver=${hwid:6:2} - hwver="v${hwver#0}" - - case "$hwid" in - "015000"*) - model="EasyLink EL-M150" - ;; - "015300"*) - model="EasyLink EL-MINI" - ;; - "3C0001"*) - model="OOLITE" - ;; - "070300"*) - model="TP-Link TL-WR703N" - ;; - "071000"*) - model="TP-Link TL-WR710N" - ;; - "072001"*) - model="TP-Link TL-WR720N" - ;; - "070100"*) - model="TP-Link TL-WA701N/ND" - ;; - "073000"*) - model="TP-Link TL-WA730RE" - ;; - "074000"*) - model="TP-Link TL-WR740N/ND" - ;; - "074100"*) - model="TP-Link TL-WR741N/ND" - ;; - "074300"*) - model="TP-Link TL-WR743N/ND" - ;; - "075000"*) - model="TP-Link TL-WA750RE" - ;; - "751000"*) - model="TP-Link TL-WA7510N" - ;; - "080100"*) - model="TP-Link TL-WA801N/ND" - ;; - "083000"*) - model="TP-Link TL-WA830RE" - ;; - "084100"*) - model="TP-Link TL-WR841N/ND" - ;; - "084200"*) - model="TP-Link TL-WR842N/ND" - ;; - "085000"*) - model="TP-Link TL-WA850RE" - ;; - "086000"*) - model="TP-Link TL-WA860RE" - ;; - "090100"*) - model="TP-Link TL-WA901N/ND" - ;; - "094100"*) - if [ "$hwid" == "09410002" -a "$mid" == "00420001" ]; then - model="Rosewill RNX-N360RT" - hwver="" - else - model="TP-Link TL-WR941N/ND" - fi - ;; - "104100"*) - model="TP-Link TL-WR1041N/ND" - ;; - "104300"*) - model="TP-Link TL-WR1043N/ND" - ;; - "254300"*) - model="TP-Link TL-WR2543N/ND" - ;; - "001001"*) - model="TP-Link TL-MR10U" - ;; - "001101"*) - model="TP-Link TL-MR11U" - ;; - "001301"*) - model="TP-Link TL-MR13U" - ;; - "302000"*) - model="TP-Link TL-MR3020" - ;; - "304000"*) - model="TP-Link TL-MR3040" - ;; - "322000"*) - model="TP-Link TL-MR3220" - ;; - "342000"*) - model="TP-Link TL-MR3420" - ;; - "350000"*) - model="TP-Link TL-WDR3500" - ;; - "360000"*) - model="TP-Link TL-WDR3600" - ;; - "430000"*) - model="TP-Link TL-WDR4300" - ;; - "430080"*) - iw reg set IL - model="TP-Link TL-WDR4300 (IL)" - ;; - "431000"*) - model="TP-Link TL-WDR4310" - ;; - "49000002") - model="TP-Link TL-WDR4900" - ;; - "453000"*) - model="MERCURY MW4530R" - ;; - "934100"*) - model="NC-LINK SMART-300" - ;; - *) - hwver="" - ;; - esac - - AR71XX_MODEL="$model $hwver" -} - -ar71xx_board_detect() { - local machine - local name - - machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo) - - case "$machine" in - *"Oolite V1.0") - name="oolite" - ;; - *"AirGateway") - name="airgateway" - ;; - *"AirRouter") - name="airrouter" - ;; - *"ALFA Network AP96") - name="alfa-ap96" - ;; - *"ALFA Network N2/N5") - name="alfa-nx" - ;; - *ALL0258N) - name="all0258n" - ;; - *ALL0305) - name="all0305" - ;; - *ALL0315N) - name="all0315n" - ;; - *AP113) - name="ap113" - ;; - *AP121) - name="ap121" - ;; - *AP121-MINI) - name="ap121-mini" - ;; - *"AP132 reference board") - name="ap132" - ;; - *"AP136-010 reference board") - name="ap136-010" - ;; - *"AP136-020 reference board") - name="ap136-020" - ;; - *"AP135-020 reference board") - name="ap135-020" - ;; - *AP81) - name="ap81" - ;; - *AP83) - name="ap83" - ;; - *"Archer C5") - name="archer-c5" - ;; - *"Archer C7") - name="archer-c7" - ;; - *"Atheros AP96") - name="ap96" - ;; - *AW-NR580) - name="aw-nr580" - ;; - *CAP4200AG) - name="cap4200ag" - ;; - *"DB120 reference board") - name="db120" - ;; - *"DIR-505 rev. A1") - name="dir-505-a1" - ;; - *"DIR-600 rev. A1") - name="dir-600-a1" - ;; - *"DIR-615 rev. E1") - name="dir-615-e1" - ;; - *"DIR-615 rev. E4") - name="dir-615-e4" - ;; - *"DIR-825 rev. B1") - name="dir-825-b1" - ;; - *"DIR-825 rev. C1") - name="dir-825-c1" - ;; - *"DIR-835 rev. A1") - name="dir-835-a1" - ;; - *"Dragino v2") - name="dragino2" - ;; - *"EAP300 v2") - name="eap300v2" - ;; - *EAP7660D) - name="eap7660d" - ;; - *EL-M150) - name="el-m150" - ;; - *EL-MINI) - name="el-mini" - ;; - *"GL-CONNECT INET v1") - name="gl-inet" - ;; - *"EnGenius ESR1750") - name="esr1750" - ;; - *"EnGenius ESR900") - name="esr900" - ;; - *JA76PF) - name="ja76pf" - ;; - *JA76PF2) - name="ja76pf2" - ;; - *"Bullet M") - name="bullet-m" - ;; - *"Nanostation M") - name="nanostation-m" - ;; - *"Nanostation M XW") - name="nanostation-m-xw" - ;; - *JWAP003) - name="jwap003" - ;; - *"Hornet-UB") - local size - size=$(awk '/firmware/ { print $2 }' /proc/mtd) - - if [ "x$size" = "x00790000" ]; then - name="hornet-ub" - fi - - if [ "x$size" = "x00f90000" ]; then - name="hornet-ub-x2" - fi - ;; - *LS-SR71) - name="ls-sr71" - ;; - *MR600v2) - name="mr600v2" - ;; - *MR600) - name="mr600" - ;; - *"My Net N600") - name="mynet-n600" - ;; - *"My Net N750") - name="mynet-n750" - ;; - *"WD My Net Wi-Fi Range Extender") - name="mynet-rext" - ;; - *MZK-W04NU) - name="mzk-w04nu" - ;; - *MZK-W300NH) - name="mzk-w300nh" - ;; - *"NBG460N/550N/550NH") - name="nbg460n_550n_550nh" - ;; - *"Zyxel NBG6716") - name="nbg6716" - ;; - *OM2P) - name="om2p" - ;; - *OM2Pv2) - name="om2pv2" - ;; - *"OM2P HS") - name="om2p-hs" - ;; - *"OM2P HSv2") - name="om2p-hsv2" - ;; - *"OM2P LC") - name="om2p-lc" - ;; - *OM5P) - name="om5p" - ;; - *PB42) - name="pb42" - ;; - *"PB44 reference board") - name="pb44" - ;; - *PB92) - name="pb92" - ;; - *"RouterBOARD 411/A/AH") - name="rb-411" - ;; - *"RouterBOARD 411U") - name="rb-411u" - ;; - *"RouterBOARD 433/AH") - name="rb-433" - ;; - *"RouterBOARD 433UAH") - name="rb-433u" - ;; - *"RouterBOARD 435G") - name="rb-435g" - ;; - *"RouterBOARD 450") - name="rb-450" - ;; - *"RouterBOARD 450G") - name="rb-450g" - ;; - *"RouterBOARD 493/AH") - name="rb-493" - ;; - *"RouterBOARD 493G") - name="rb-493g" - ;; - *"RouterBOARD 750") - name="rb-750" - ;; - *"RouterBOARD 750GL") - name="rb-750gl" - ;; - *"RouterBOARD 751") - name="rb-751" - ;; - *"RouterBOARD 751G") - name="rb-751g" - ;; - *"RouterBOARD 911G-2HPnD") - name="rb-911g-2hpnd" - ;; - *"RouterBOARD 911G-5HPnD") - name="rb-911g-5hpnd" - ;; - *"RouterBOARD 912UAG-2HPnD") - name="rb-912uag-2hpnd" - ;; - *"RouterBOARD 912UAG-5HPnD") - name="rb-912uag-5hpnd" - ;; - *"RouterBOARD 951G-2HnD") - name="rb-951g-2hnd" - ;; - *"RouterBOARD 951Ui-2HnD") - name="rb-951ui-2hnd" - ;; - *"RouterBOARD 2011L") - name="rb-2011l" - ;; - *"RouterBOARD 2011UAS") - name="rb-2011uas" - ;; - *"RouterBOARD 2011UiAS") - name="rb-2011uias" - ;; - *"RouterBOARD 2011UAS-2HnD") - name="rb-2011uas-2hnd" - ;; - *"RouterBOARD SXT Lite2") - name="rb-sxt2n" - ;; - *"RouterBOARD SXT Lite5") - name="rb-sxt5n" - ;; - *"Rocket M") - name="rocket-m" - ;; - *RouterStation) - name="routerstation" - ;; - *"RouterStation Pro") - name="routerstation-pro" - ;; - *RW2458N) - name="rw2458n" - ;; - *"SMART-300") - name="smart-300" - ;; - *TEW-632BRP) - name="tew-632brp" - ;; - *TEW-673GRU) - name="tew-673gru" - ;; - *TEW-712BR) - name="tew-712br" - ;; - *TEW-732BR) - name="tew-732br" - ;; - *"TL-WR1041N v2") - name="tl-wr1041n-v2" - ;; - *TL-WR1043ND) - name="tl-wr1043nd" - ;; - *"TL-WR1043ND v2") - name="tl-wr1043nd-v2" - ;; - *TL-WR2543N*) - name="tl-wr2543n" - ;; - *"DIR-615 rev. C1") - name="dir-615-c1" - ;; - *TL-MR3020) - name="tl-mr3020" - ;; - *TL-MR3040) - name="tl-mr3040" - ;; - *"TL-MR3040 v2") - name="tl-mr3040-v2" - ;; - *TL-MR3220) - name="tl-mr3220" - ;; - *"TL-MR3220 v2") - name="tl-mr3220-v2" - ;; - *TL-MR3420) - name="tl-mr3420" - ;; - *"TL-MR3420 v2") - name="tl-mr3420-v2" - ;; - *TL-WA750RE) - name="tl-wa750re" - ;; - *"TL-WA7510N v1") - name="tl-wa7510n" - ;; - *TL-WA850RE) - name="tl-wa850re" - ;; - *"TL-WA830RE v2") - name="tl-wa830re-v2" - ;; - *"TL-WA801ND v2") - name="tl-wa801nd-v2" - ;; - *TL-WA901ND) - name="tl-wa901nd" - ;; - *"TL-WA901ND v2") - name="tl-wa901nd-v2" - ;; - *"TL-WA901ND v3") - name="tl-wa901nd-v3" - ;; - *"TL-WDR3500") - name="tl-wdr3500" - ;; - *"TL-WDR3600/4300/4310") - name="tl-wdr4300" - ;; - *"TL-WDR4900 v2") - name="tl-wdr4900-v2" - ;; - *TL-WR741ND) - name="tl-wr741nd" - ;; - *"TL-WR741ND v4") - name="tl-wr741nd-v4" - ;; - *"TL-WR841N v1") - name="tl-wr841n-v1" - ;; - *"TL-WR841N/ND v7") - name="tl-wr841n-v7" - ;; - *"TL-WR841N/ND v8") - name="tl-wr841n-v8" - ;; - *"TL-WR841N/ND v9") - name="tl-wr841n-v9" - ;; - *"TL-WR842N/ND v2") - name="tl-wr842n-v2" - ;; - *TL-WR941ND) - name="tl-wr941nd" - ;; - *"TL-WR703N v1") - name="tl-wr703n" - ;; - *"TL-WR710N v1") - name="tl-wr710n" - ;; - *"TL-WR720N v3") - name="tl-wr720n-v3" - ;; - *"TL-MR10U") - name="tl-mr10u" - ;; - *"TL-MR11U") - name="tl-mr11u" - ;; - *"TL-MR13U") - name="tl-mr13u" - ;; - *"Tube2H") - name="tube2h" - ;; - *UniFi) - name="unifi" - ;; - *"UniFi AP Pro") - name="uap-pro" - ;; - *WHR-G301N) - name="whr-g301n" - ;; - *WHR-HP-GN) - name="whr-hp-gn" - ;; - *WLAE-AG300N) - name="wlae-ag300n" - ;; - *"UniFiAP Outdoor") - name="unifi-outdoor" - ;; - *WP543) - name="wp543" - ;; - *WPE72) - name="wpe72" - ;; - *WNDAP360) - name="wndap360" - ;; - *"WNDR3700/WNDR3800/WNDRMAC") - wndr3700_board_detect "$machine" - ;; - *"WNDR3700v4") - name="wndr3700v4" - ;; - *"WNDR4300") - name="wndr4300" - ;; - *"WNR2000 V3") - name="wnr2000-v3" - ;; - *WNR2000) - name="wnr2000" - ;; - *WNR2200) - name="wnr2200" - ;; - *"WNR612 V2") - name="wnr612-v2" - ;; - *WRT160NL) - name="wrt160nl" - ;; - *WRT400N) - name="wrt400n" - ;; - *"WZR-HP-AG300H/WZR-600DHP") - name="wzr-hp-ag300h" - ;; - *WZR-HP-G300NH) - name="wzr-hp-g300nh" - ;; - *WZR-HP-G450H) - name="wzr-hp-g450h" - ;; - *WZR-HP-G300NH2) - name="wzr-hp-g300nh2" - ;; - *WHR-HP-G300N) - name="whr-hp-g300n" - ;; - *ZCN-1523H-2) - name="zcn-1523h-2" - ;; - *ZCN-1523H-5) - name="zcn-1523h-5" - ;; - *EmbWir-Dorin) - name="ew-dorin" - ;; - *EmbWir-Dorin-Router) - name="ew-dorin-router" - ;; - "8devices Carambola2"*) - name="carambola2" - ;; - *"Sitecom WLR-8100") - name="wlr8100" - ;; - *"BHU BXU2000n-2 rev. A1") - name="bxu2000n-2-a1" - ;; - *"HiWiFi HC6361") - name="hiwifi-hc6361" - ;; - esac - - case "$machine" in - *TL-WR* | *TL-WA* | *TL-MR* | *TL-WD*) - tplink_board_detect "$machine" - ;; - esac - - [ -z "$name" ] && name="unknown" - - [ -z "$AR71XX_BOARD_NAME" ] && AR71XX_BOARD_NAME="$name" - [ -z "$AR71XX_MODEL" ] && AR71XX_MODEL="$machine" - - [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/" - - echo "$AR71XX_BOARD_NAME" > /tmp/sysinfo/board_name - echo "$AR71XX_MODEL" > /tmp/sysinfo/model -} - -ar71xx_board_name() { - local name - - [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name) - [ -z "$name" ] && name="unknown" - - echo "$name" -} diff --git a/target/linux/ar71xx/base-files/lib/preinit/03_preinit_do_ar71xx.sh b/target/linux/ar71xx/base-files/lib/preinit/03_preinit_do_ar71xx.sh deleted file mode 100644 index ff5407a..0000000 --- a/target/linux/ar71xx/base-files/lib/preinit/03_preinit_do_ar71xx.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -do_ar71xx() { - . /lib/ar71xx.sh - - ar71xx_board_detect -} - -boot_hook_add preinit_main do_ar71xx diff --git a/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx b/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx deleted file mode 100644 index f8bb7b7..0000000 --- a/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx +++ /dev/null @@ -1,39 +0,0 @@ -# -# Copyright (C) 2009 OpenWrt.org -# - -. /lib/ar71xx.sh - -fetch_mac_from_mtd() { - local mtd_part=$1 - local lan_env=$2 - local wan_env=$3 - local mtd mac - - mtd=$(grep $mtd_part /proc/mtd | cut -d: -f1) - [ -z $mtd ] && return - - mac=$(grep $lan_env /dev/$mtd | cut -d= -f2) - [ ! -z $mac ] && ifconfig eth0 hw ether $mac 2>/dev/null - - mac=$(grep $wan_env /dev/$mtd | cut -d= -f2) - [ ! -z $mac ] && ifconfig eth1 hw ether $mac 2>/dev/null -} - -preinit_set_mac_address() { - case $(ar71xx_board_name) in - tew-632brp) - fetch_mac_from_mtd config lan_mac wan_mac - ;; - dir-615-c1) - fetch_mac_from_mtd config lan_mac wan_mac - echo 1 > /sys/class/leds/dir-615-c1:green:wancpu/brightness - ;; - wrt160nl) - fetch_mac_from_mtd nvram lan_hwaddr wan_hwaddr - ;; - esac -} - -boot_hook_add preinit_main preinit_set_mac_address - diff --git a/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx b/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx deleted file mode 100644 index a9a8794..0000000 --- a/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh - -# -# Copyright (C) 2009 OpenWrt.org -# - -. /lib/ar71xx.sh - -set_preinit_iface() { - case $(ar71xx_board_name) in - alfa-ap96 |\ - alfa-nx |\ - ap135-020 |\ - ap136-020 |\ - ap83 |\ - archer-c5 |\ - archer-c7 |\ - dir-505-a1 |\ - gl-inet |\ - jwap003 |\ - pb42 |\ - pb44 |\ - rb-433 |\ - rb-433u |\ - rb-435g |\ - rb-450 |\ - rb-450g |\ - routerstation |\ - routerstation-pro |\ - smart-300 |\ - tl-mr3420-v2 |\ - tl-wdr4900-v2 |\ - tl-wr1043nd-v2 |\ - tl-wr710n |\ - tl-wr720n-v3 |\ - tl-wr841n-v8 |\ - tl-wr842n-v2 |\ - wnr2000-v3 |\ - wnr2200 |\ - wnr612-v2 |\ - wpe72) - ifname=eth1 - ;; - *) - ifname=eth0 - ;; - esac -} - -boot_hook_add preinit_main set_preinit_iface - - - diff --git a/target/linux/ar71xx/base-files/lib/preinit/81_load_ath10k_board_bin b/target/linux/ar71xx/base-files/lib/preinit/81_load_ath10k_board_bin deleted file mode 100644 index a28932f..0000000 --- a/target/linux/ar71xx/base-files/lib/preinit/81_load_ath10k_board_bin +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -. /lib/functions/system.sh -. /lib/ar71xx.sh - -do_load_ath10k_board_bin() { - # load board.bin - case $(ar71xx_board_name) in - nbg6716) - dd if=/dev/mtdblock2 \ - bs=1 skip=20480 count=2116 \ - of=/tmp/ath10k-board.bin - ;; - archer-c5 | \ - archer-c7) - local mac - mac=$(macaddr_add $(cat /sys/class/net/eth1/address) -2) - - dd if=/dev/mtdblock4 \ - bs=1 skip=20480 count=6 \ - of=/tmp/ath10k-board.bin - macaddr_2bin $mac >> /tmp/ath10k-board.bin - dd if=/dev/mtdblock4 \ - bs=1 skip=20492 count=2104 >> /tmp/ath10k-board.bin - - ;; - esac - [ -f /tmp/ath10k-board.bin ] || { - return - } - cmp -s /tmp/ath10k-board.bin /lib/firmware/ath10k/QCA988X/hw2.0/board.bin || { - cp /tmp/ath10k-board.bin /lib/firmware/ath10k/QCA988X/hw2.0/board.bin - rm /tmp/ath10k-board.bin - } -} - -boot_hook_add preinit_main do_load_ath10k_board_bin diff --git a/target/linux/ar71xx/base-files/lib/upgrade/allnet.sh b/target/linux/ar71xx/base-files/lib/upgrade/allnet.sh deleted file mode 100644 index 98b368d..0000000 --- a/target/linux/ar71xx/base-files/lib/upgrade/allnet.sh +++ /dev/null @@ -1,162 +0,0 @@ -# The U-Boot loader of the some Allnet devices requires image sizes and -# checksums to be provided in the U-Boot environment. -# In case the check fails during boot, a failsafe-system is started to provide -# a minimal web-interface for flashing a new firmware. - -# make sure we got uboot-envtools and fw_env.config copied over to the ramfs -# create /var/lock for the lock "fw_setenv.lock" of fw_setenv -platform_add_ramfs_ubootenv() { - [ -e /usr/sbin/fw_printenv ] && install_bin /usr/sbin/fw_printenv /usr/sbin/fw_setenv - [ -e /etc/fw_env.config ] && install_file /etc/fw_env.config - mkdir -p $RAM_ROOT/var/lock -} -append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv - -# determine size of the main firmware partition -platform_get_firmware_size() { - local dev size erasesize name - while read dev size erasesize name; do - name=${name#'"'}; name=${name%'"'} - case "$name" in - firmware) - printf "%d" "0x$size" - break - ;; - esac - done < /proc/mtd -} - -# get the first 4 bytes (magic) of a given file starting at offset in hex format -get_magic_long_at() { - dd if="$1" skip=$(( $CI_BLKSZ / 4 * $2 )) bs=4 count=1 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' -} - -get_filesize() { - wc -c "$1" | while read image_size _n ; do echo $image_size ; break; done -} - -# scan through the update image pages until matching a magic -platform_get_offset() { - offsetcount=0 - magiclong="x" - if [ -n "$3" ]; then - offsetcount=$3 - fi - while magiclong=$( get_magic_long_at "$1" "$offsetcount" ) && [ -n "$magiclong" ]; do - case "$magiclong" in - "2705"*) - # U-Boot image magic - if [ "$2" = "uImage" ]; then - echo $offsetcount - return - fi - ;; - "68737173"|"73717368") - # SquashFS - if [ "$2" = "rootfs" ]; then - echo $offsetcount - return - fi - ;; - "deadc0de"|"19852003") - # JFFS2 empty page - if [ "$2" = "rootfs-data" ]; then - echo $offsetcount - return - fi - ;; - esac - offsetcount=$(( $offsetcount + 1 )) - done -} - -platform_check_image_allnet() { - local fw_printenv=/usr/sbin/fw_printenv - [ ! -n "$fw_printenv" -o ! -x "$fw_printenv" ] && { - echo "Please install uboot-envtools!" - return 1 - } - - [ ! -r "/etc/fw_env.config" ] && { - echo "/etc/fw_env.config is missing" - return 1 - } - - local image_size=$( get_filesize "$1" ) - local firmware_size=$( platform_get_firmware_size ) - [ $image_size -ge $firmware_size ] && - { - echo "upgrade image is too big (${image_size}b > ${firmware_size}b)" - } - - local vmlinux_blockoffset=$( platform_get_offset "$1" uImage ) - [ -z $vmlinux_blockoffset ] && { - echo "vmlinux-uImage not found" - return 1 - } - - local rootfs_blockoffset=$( platform_get_offset "$1" rootfs "$vmlinux_blockoffset" ) - [ -z $rootfs_blockoffset ] && { - echo "missing rootfs" - return 1 - } - - local data_blockoffset=$( platform_get_offset "$1" rootfs-data "$rootfs_blockoffset" ) - [ -z $data_blockoffset ] && { - echo "rootfs doesn't have JFFS2 end marker" - return 1 - } - - return 0 -} - -platform_do_upgrade_allnet() { - local firmware_base_addr=$( printf "%d" "$1" ) - local vmlinux_blockoffset=$( platform_get_offset "$2" uImage ) - if [ ! -n "$vmlinux_blockoffset" ]; then - echo "can't determine uImage offset" - return 1 - fi - local rootfs_blockoffset=$( platform_get_offset "$2" rootfs $(( $vmlinux_blockoffset + 1 )) ) - local vmlinux_offset=$(( $vmlinux_blockoffset * $CI_BLKSZ )) - local vmlinux_addr=$(( $firmware_base_addr + $vmlinux_offset )) - local vmlinux_hexaddr=0x$( printf "%08x" "$vmlinux_addr" ) - if [ ! -n "$rootfs_blockoffset" ]; then - echo "can't determine rootfs offset" - return 1 - fi - local rootfs_offset=$(( $rootfs_blockoffset * $CI_BLKSZ )) - local rootfs_addr=$(( $firmware_base_addr + $rootfs_offset )) - local rootfs_hexaddr=0x$( printf "%08x" "$rootfs_addr" ) - local vmlinux_blockcount=$(( $rootfs_blockoffset - $vmlinux_blockoffset )) - local vmlinux_size=$(( $rootfs_offset - $vmlinux_offset )) - local vmlinux_hexsize=0x$( printf "%08x" "$vmlinux_size" ) - local data_blockoffset=$( platform_get_offset "$2" rootfs-data $(( $rootfs_blockoffset + 1 )) ) - if [ ! -n "$data_blockoffset" ]; then - echo "can't determine rootfs size" - return 1 - fi - local data_offset=$(( $data_blockoffset * $CI_BLKSZ )) - local rootfs_blockcount=$(( $data_blockoffset - $rootfs_blockoffset )) - local rootfs_size=$(( $data_offset - $rootfs_offset )) - local rootfs_hexsize=0x$( printf "%08x" "$rootfs_size" ) - - local rootfs_md5=$( dd if="$2" bs=$CI_BLKSZ skip=$rootfs_blockoffset count=$rootfs_blockcount 2>/dev/null | md5sum -); rootfs_md5="${rootfs_md5%% *}" - local vmlinux_md5=$( dd if="$2" bs=$CI_BLKSZ skip=$vmlinux_blockoffset count=$vmlinux_blockcount 2>/dev/null | md5sum -); vmlinux_md5="${vmlinux_md5%% *}" - # this needs a recent version of uboot-envtools! - cat >/tmp/fw_env_upgrade <<EOF -vmlinux_start_addr $vmlinux_hexaddr -vmlinux_size $vmlinux_hexsize -vmlinux_checksum $vmlinux_md5 -rootfs_start_addr $rootfs_hexaddr -rootfs_size $rootfs_hexsize -rootfs_checksum $rootfs_md5 -bootcmd bootm $vmlinux_hexaddr -EOF - fw_setenv -s /tmp/fw_env_upgrade || { - echo "failed to update U-Boot environment" - return 1 - } - shift - default_do_upgrade "$@" -} diff --git a/target/linux/ar71xx/base-files/lib/upgrade/dir825.sh b/target/linux/ar71xx/base-files/lib/upgrade/dir825.sh deleted file mode 100644 index 7ad3dd8..0000000 --- a/target/linux/ar71xx/base-files/lib/upgrade/dir825.sh +++ /dev/null @@ -1,165 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2012 OpenWrt.org -# - -. /lib/functions.sh -. /lib/ar71xx.sh - -get_magic_at() { - local mtddev=$1 - local pos=$2 - dd bs=1 count=2 skip=$pos if=$mtddev 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' -} - -dir825b_is_caldata_valid() { - local mtddev=$1 - local magic - - magic=$(get_magic_at $mtddev 4096) - [ "$magic" != "a55a" ] && return 0 - - magic=$(get_magic_at $mtddev 20480) - [ "$magic" != "a55a" ] && return 0 - - return 1 -} - -dir825b_copy_caldata() { - local cal_src=$1 - local cal_dst=$2 - local mtd_src - local mtd_dst - local md5_src - local md5_dst - - mtd_src=$(find_mtd_part $cal_src) - [ -z "$mtd_src" ] && { - echo "no $cal_src partition found" - return 1 - } - - mtd_dst=$(find_mtd_part $cal_dst) - [ -z "$mtd_dst" ] && { - echo "no $cal_dst partition found" - return 1 - } - - dir825b_is_caldata_valid "$mtd_src" && { - echo "no valid calibration data found in $cal_src" - return 1 - } - - dir825b_is_caldata_valid "$mtd_dst" && { - echo "Copying calibration data from $cal_src to $cal_dst..." - dd if="$mtd_src" 2>/dev/null | mtd -q -q write - "$cal_dst" - } - - md5_src=$(md5sum "$mtd_src") && md5_src="${md5_src%% *}" - md5_dst=$(md5sum "$mtd_dst") && md5_dst="${md5_dst%% *}" - - [ "$md5_src" != "$md5_dst" ] && { - echo "calibration data mismatch $cal_src:$md5_src $cal_dst:$md5_dst" - return 1 - } - - return 0 -} - -dir825b_do_upgrade_combined() { - local fw_part=$1 - local fw_file=$2 - local fw_mtd=$(find_mtd_part $fw_part) - local fw_length=0x$(dd if="$fw_file" bs=2 skip=1 count=4 2>/dev/null) - local fw_blocks=$(($fw_length / 65536)) - - if [ -n "$fw_mtd" ] && [ ${fw_blocks:-0} -gt 0 ]; then - local append="" - [ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR" - - sync - dd if="$fw_file" bs=64k skip=1 count=$fw_blocks 2>/dev/null | \ - mtd $append write - "$fw_part" - fi -} - -dir825b_check_image() { - local magic="$(get_magic_long "$1")" - local fw_mtd=$(find_mtd_part "firmware_orig") - - case "$magic" in - "27051956") - ;; - "43493030") - local md5_img=$(dd if="$1" bs=2 skip=9 count=16 2>/dev/null) - local md5_chk=$(dd if="$1" bs=64k skip=1 2>/dev/null | md5sum -); md5_chk="${md5_chk%% *}" - local fw_len=$(dd if="$1" bs=2 skip=1 count=4 2>/dev/null) - local fw_part_len=$(mtd_get_part_size "firmware") - - if [ -z "$fw_mtd" ]; then - ask_bool 0 "Do you have a backup of the caldata partition?" || { - echo "Warning, please make sure that you have a backup of the caldata partition." - echo "Once you have that, use 'sysupgrade -i' for upgrading to the 'fat' firmware." - return 1 - } - fi - - if [ -z "$md5_img" -o -z "$md5_chk" ]; then - echo "Unable to get image checksums. Maybe you are using a streamed image?" - return 1 - fi - - if [ "$md5_img" != "$md5_chk" ]; then - echo "Invalid image. Contents do not match checksum (image:$md5_img calculated:$md5_chk)" - return 1 - fi - - fw_len=$((0x$fw_len)) - fw_part_len=${fw_part_len:-0} - - if [ $fw_part_len -lt $fw_len ]; then - echo "The upgrade image is too big (size:$fw_len available:$fw_part_len)" - return 1 - fi - ;; - *) - echo "Unsupported image format." - return 1 - ;; - esac - - return 0 -} - -platform_do_upgrade_dir825b() { - local magic="$(get_magic_long "$1")" - local fw_mtd=$(find_mtd_part "firmware_orig") - - case "$magic" in - "27051956") - if [ -n "$fw_mtd" ]; then - # restore calibration data before downgrading to - # the normal image - dir825b_copy_caldata "caldata" "caldata_orig" || { - echo "unable to restore calibration data" - exit 1 - } - PART_NAME="firmware_orig" - else - PART_NAME="firmware" - fi - default_do_upgrade "$ARGV" - ;; - "43493030") - if [ -z "$fw_mtd" ]; then - # backup calibration data before upgrading to the - # fat image - dir825b_copy_caldata "caldata" "caldata_copy" || { - echo "unable to backup calibration data" - exit 1 - } - fi - dir825b_do_upgrade_combined "firmware" "$ARGV" - ;; - esac -} diff --git a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh deleted file mode 100644 index ac0e3f9..0000000 --- a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh +++ /dev/null @@ -1,206 +0,0 @@ -# The U-Boot loader of the OpenMesh devices requires image sizes and -# checksums to be provided in the U-Boot environment. -# The OpenMesh devices come with 2 main partitions - while one is active -# sysupgrade will flash the other. The boot order is changed to boot the -# newly flashed partition. If the new partition can't be booted due to -# upgrade failures the previously used partition is loaded. - -trim() -{ - echo $1 -} - -cfg_value_get() -{ - local cfg=$1 cfg_opt - local section=$2 our_section=0 - local param=$3 our_param= - - for cfg_opt in $cfg - do - [ "$cfg_opt" = "[$section]" ] && our_section=1 && continue - [ "$our_section" = "1" ] || continue - - our_param=$(echo ${cfg_opt%%=*}) - [ "$param" = "$our_param" ] && echo ${cfg_opt##*=} && break - done -} - -# make sure we got uboot-envtools and fw_env.config copied over to the ramfs -# create /var/lock for the lock "fw_setenv.lock" of fw_setenv -platform_add_ramfs_ubootenv() -{ - [ -e /usr/sbin/fw_printenv ] && install_bin /usr/sbin/fw_printenv /usr/sbin/fw_setenv - [ -e /etc/fw_env.config ] && install_file /etc/fw_env.config - mkdir -p $RAM_ROOT/var/lock -} -append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv - -platform_check_image_openmesh() -{ - local img_magic=$1 - local img_path=$2 - local fw_printenv=/usr/sbin/fw_printenv - local img_board_target= img_num_files= i=0 - local cfg_name= kernel_name= rootfs_name= - - case "$img_magic" in - # Combined Extended Image v1 - 43453031) - img_board_target=$(trim $(dd if="$img_path" bs=4 skip=1 count=8 2>/dev/null)) - img_num_files=$(trim $(dd if="$img_path" bs=2 skip=18 count=1 2>/dev/null)) - ;; - *) - echo "Invalid image ($img_magic). Use combined extended images on this platform" - return 1 - ;; - esac - - case "$img_board_target" in - OM2P) - [ "$board" = "om2p" ] && break - [ "$board" = "om2pv2" ] && break - [ "$board" = "om2p-lc" ] && break - [ "$board" = "om2p-hs" ] && break - [ "$board" = "om2p-hsv2" ] && break - echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform" - return 1 - ;; - OM5P) - [ "$board" = "om5p" ] && break - echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform" - return 1 - ;; - MR600) - [ "$board" = "mr600" ] && break - [ "$board" = "mr600v2" ] && break - echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform" - return 1 - ;; - *) - echo "Invalid board target ($img_board_target). Use the correct image for this platform" - return 1 - ;; - esac - - [ $img_num_files -ne 3 ] && { - echo "Invalid number of embedded images ($img_num_files). Use the correct image for this platform" - return 1 - } - - cfg_name=$(trim $(dd if="$img_path" bs=2 skip=19 count=16 2>/dev/null)) - - [ "$cfg_name" != "fwupgrade.cfg" ] && { - echo "Invalid embedded config file ($cfg_name). Use the correct image for this platform" - return 1 - } - - kernel_name=$(trim $(dd if="$img_path" bs=2 skip=55 count=16 2>/dev/null)) - - [ "$kernel_name" != "kernel" ] && { - echo "Invalid embedded kernel file ($kernel_name). Use the correct image for this platform" - return 1 - } - - rootfs_name=$(trim $(dd if="$img_path" bs=2 skip=91 count=16 2>/dev/null)) - - [ "$rootfs_name" != "rootfs" ] && { - echo "Invalid embedded kernel file ($rootfs_name). Use the correct image for this platform" - return 1 - } - - [ ! -x "$fw_printenv" ] && { - echo "Please install uboot-envtools!" - return 1 - } - - [ ! -r "/etc/fw_env.config" ] && { - echo "/etc/fw_env.config is missing" - return 1 - } - - return 0 -} - -platform_do_upgrade_openmesh() -{ - local img_path=$1 img_board_target= - local kernel_start_addr= kernel_start_addr1= kernel_start_addr2= - local kernel_size= kernel_md5= - local rootfs_size= rootfs_checksize= rootfs_md5= - local kernel_bsize= total_size= - local data_offset=$((64 * 1024)) block_size= offset= - local uboot_env_upgrade="/tmp/fw_env_upgrade" - local cfg_size= kernel_size= rootfs_size= - local append="" - - [ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR" - - cfg_size=$(dd if="$img_path" bs=2 skip=35 count=4 2>/dev/null) - kernel_size=$(dd if="$img_path" bs=2 skip=71 count=4 2>/dev/null) - rootfs_size=$(dd if="$img_path" bs=2 skip=107 count=4 2>/dev/null) - - img_board_target=$(trim $(dd if="$img_path" bs=4 skip=1 count=8 2>/dev/null)) - cfg_content=$(dd if="$img_path" bs=1 skip=$data_offset count=$(echo $((0x$cfg_size))) 2>/dev/null) - - case $img_board_target in - OM2P) - block_size=$((256 * 1024)) - total_size=7340032 - kernel_start_addr1=0x9f1c0000 - kernel_start_addr2=0x9f8c0000 - ;; - OM5P|MR600) - block_size=$((64 * 1024)) - total_size=7995392 - kernel_start_addr1=0x9f0b0000 - kernel_start_addr2=0x9f850000 - ;; - esac - - kernel_md5=$(cfg_value_get "$cfg_content" "vmlinux" "md5sum") - rootfs_md5=$(cfg_value_get "$cfg_content" "rootfs" "md5sum") - rootfs_checksize=$(cfg_value_get "$cfg_content" "rootfs" "checksize") - - if [ "$((0x$kernel_size % $block_size))" = "0" ] - then - kernel_bsize=$(echo $((0x$kernel_size))) - else - kernel_bsize=$((0x$kernel_size + ($block_size - (0x$kernel_size % $block_size)))) - fi - - mtd -q erase inactive - - offset=$(echo $(($data_offset + 0x$cfg_size + 0x$kernel_size))) - dd if="$img_path" bs=1 skip=$offset count=$(echo $((0x$rootfs_size))) 2>&- | mtd -n -p $kernel_bsize $append write - "inactive" - - offset=$(echo $(($data_offset + 0x$cfg_size))) - dd if="$img_path" bs=1 skip=$offset count=$(echo $((0x$kernel_size))) 2>&- | mtd -n write - "inactive" - - rm $uboot_env_upgrade 2>&- - - if [ "$(grep 'mtd3:.*inactive' /proc/mtd)" ] - then - printf "kernel_size_1 %u\n" $(($kernel_bsize / 1024)) >> $uboot_env_upgrade - printf "rootfs_size_1 %u\n" $((($total_size - $kernel_bsize) / 1024)) >> $uboot_env_upgrade - printf "bootseq 1,2\n" >> $uboot_env_upgrade - kernel_start_addr=$kernel_start_addr1 - else - printf "kernel_size_2 %u\n" $(($kernel_bsize / 1024)) >> $uboot_env_upgrade - printf "rootfs_size_2 %u\n" $((($total_size - $kernel_bsize) / 1024)) >> $uboot_env_upgrade - printf "bootseq 2,1\n" >> $uboot_env_upgrade - kernel_start_addr=$kernel_start_addr2 - fi - - printf "vmlinux_start_addr %s\n" $kernel_start_addr >> $uboot_env_upgrade - printf "vmlinux_size 0x%s\n" $kernel_size >> $uboot_env_upgrade - printf "vmlinux_checksum %s\n" $kernel_md5 >> $uboot_env_upgrade - printf "rootfs_start_addr 0x%x\n" $(($kernel_start_addr + $kernel_bsize)) >> $uboot_env_upgrade - printf "rootfs_size %s\n" $rootfs_checksize >> $uboot_env_upgrade - printf "rootfs_checksum %s\n" $rootfs_md5 >> $uboot_env_upgrade - - fw_setenv -s $uboot_env_upgrade || { - echo "failed to update U-Boot environment" - return 1 - } -} diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh deleted file mode 100755 index b5b2873..0000000 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ /dev/null @@ -1,452 +0,0 @@ -# -# Copyright (C) 2011 OpenWrt.org -# - -. /lib/functions/system.sh -. /lib/ar71xx.sh - -PART_NAME=firmware -RAMFS_COPY_DATA=/lib/ar71xx.sh - -CI_BLKSZ=65536 -CI_LDADR=0x80060000 - -platform_find_partitions() { - local first dev size erasesize name - while read dev size erasesize name; do - name=${name#'"'}; name=${name%'"'} - case "$name" in - vmlinux.bin.l7|vmlinux|kernel|linux|linux.bin|rootfs|filesystem) - if [ -z "$first" ]; then - first="$name" - else - echo "$erasesize:$first:$name" - break - fi - ;; - esac - done < /proc/mtd -} - -platform_find_kernelpart() { - local part - for part in "${1%:*}" "${1#*:}"; do - case "$part" in - vmlinux.bin.l7|vmlinux|kernel|linux|linux.bin) - echo "$part" - break - ;; - esac - done -} - -platform_do_upgrade_combined() { - local partitions=$(platform_find_partitions) - local kernelpart=$(platform_find_kernelpart "${partitions#*:}") - local erase_size=$((0x${partitions%%:*})); partitions="${partitions#*:}" - local kern_length=0x$(dd if="$1" bs=2 skip=1 count=4 2>/dev/null) - local kern_blocks=$(($kern_length / $CI_BLKSZ)) - local root_blocks=$((0x$(dd if="$1" bs=2 skip=5 count=4 2>/dev/null) / $CI_BLKSZ)) - - if [ -n "$partitions" ] && [ -n "$kernelpart" ] && \ - [ ${kern_blocks:-0} -gt 0 ] && \ - [ ${root_blocks:-0} -gt 0 ] && \ - [ ${erase_size:-0} -gt 0 ]; - then - local append="" - [ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR" - - ( dd if="$1" bs=$CI_BLKSZ skip=1 count=$kern_blocks 2>/dev/null; \ - dd if="$1" bs=$CI_BLKSZ skip=$((1+$kern_blocks)) count=$root_blocks 2>/dev/null ) | \ - mtd -r $append -F$kernelpart:$kern_length:$CI_LDADR,rootfs write - $partitions - fi -} - -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_boot_size() { - get_image "$@" | dd bs=4 count=1 skip=37 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' -} - -seama_get_type_magic() { - get_image "$@" | dd bs=1 count=4 skip=53 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"' -} - -cybertan_check_image() { - local magic="$(cybertan_get_image_magic "$1")" - local fw_magic="$(cybertan_get_hw_magic)" - - [ "$fw_magic" != "$magic" ] && { - echo "Invalid image, ID mismatch, got:$magic, but need:$fw_magic" - return 1 - } - - return 0 -} - -platform_do_upgrade_compex() { - local fw_file=$1 - local fw_part=$PART_NAME - local fw_mtd=$(find_mtd_part $fw_part) - local fw_length=0x$(dd if="$fw_file" bs=2 skip=1 count=4 2>/dev/null) - local fw_blocks=$(($fw_length / 65536)) - - if [ -n "$fw_mtd" ] && [ ${fw_blocks:-0} -gt 0 ]; then - local append="" - [ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR" - - sync - dd if="$fw_file" bs=64k skip=1 count=$fw_blocks 2>/dev/null | \ - mtd $append write - "$fw_part" - fi -} - -alfa_check_image() { - local magic_long="$(get_magic_long "$1")" - local fw_part_size=$(mtd_get_part_size firmware) - - case "$magic_long" in - "27051956") - [ "$fw_part_size" != "16318464" ] && { - echo "Invalid image magic \"$magic_long\" for $fw_part_size bytes" - return 1 - } - ;; - - "68737173") - [ "$fw_part_size" != "7929856" ] && { - echo "Invalid image magic \"$magic_long\" for $fw_part_size bytes" - return 1 - } - ;; - esac - - return 0 -} - -platform_check_image() { - local board=$(ar71xx_board_name) - local magic="$(get_magic_word "$1")" - local magic_long="$(get_magic_long "$1")" - - [ "$#" -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 | \ - ap96 | \ - db120 | \ - hornet-ub | \ - bxu2000n-2-a1 | \ - zcn-1523h-2 | \ - zcn-1523h-5) - [ "$magic_long" != "68737173" -a "$magic_long" != "19852003" ] && { - echo "Invalid image type." - return 1 - } - return 0 - ;; - ap81 | \ - ap83 | \ - ap132 | \ - dir-505-a1 | \ - dir-600-a1 | \ - dir-615-c1 | \ - dir-615-e1 | \ - dir-615-e4 | \ - dir-825-c1 | \ - dir-835-a1 | \ - dragino2 | \ - esr1750 | \ - 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 | \ - nanostation-m | \ - rocket-m | \ - nanostation-m-xw | \ - rw2458n | \ - wndap360 | \ - wzr-hp-g300nh2 | \ - wzr-hp-g300nh | \ - wzr-hp-g450h | \ - wzr-hp-ag300h | \ - whr-g301n | \ - whr-hp-g300n | \ - whr-hp-gn | \ - wlae-ag300n | \ - nbg460n_550n_550nh | \ - unifi | \ - unifi-outdoor | \ - carambola2 ) - [ "$magic" != "2705" ] && { - echo "Invalid image type." - return 1 - } - return 0 - ;; - - dir-825-b1 | \ - tew-673gru) - dir825b_check_image "$1" && return 0 - ;; - - mynet-rext|\ - wrt160nl) - cybertan_check_image "$1" && return 0 - return 1 - ;; - - mynet-n600 | \ - mynet-n750) - [ "$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 - } - - return 0; - ;; - mr600 | \ - mr600v2 | \ - om2p | \ - om2pv2 | \ - om2p-hs | \ - om2p-hsv2 | \ - om2p-lc | \ - om5p) - platform_check_image_openmesh "$magic_long" "$1" && return 0 - return 1 - ;; - - archer-c5 | \ - archer-c7 | \ - el-m150 | \ - el-mini | \ - gl-inet | \ - oolite | \ - smart-300 | \ - tl-mr10u | \ - tl-mr11u | \ - tl-mr13u | \ - tl-mr3020 | \ - tl-mr3040 | \ - tl-mr3040-v2 | \ - tl-mr3220 | \ - tl-mr3220-v2 | \ - tl-mr3420 | \ - tl-mr3420-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-wr1041n-v2 | \ - tl-wr1043nd | \ - tl-wr1043nd-v2 | \ - tl-wr2543n) - [ "$magic" != "0100" ] && { - echo "Invalid image type." - return 1 - } - - local hwid - local imageid - - hwid=$(tplink_get_hwid) - imageid=$(tplink_get_image_hwid "$1") - - [ "$hwid" != "$imageid" ] && { - echo "Invalid image, hardware ID mismatch, hw:$hwid image:$imageid." - return 1 - } - - local boot_size - - boot_size=$(tplink_get_image_boot_size "$1") - [ "$boot_size" != "00000000" ] && { - echo "Invalid image, it contains a bootloader." - return 1 - } - - return 0 - ;; - - tube2h) - alfa_check_image "$1" && return 0 - return 1 - ;; - - uap-pro) - [ "$magic_long" != "19852003" ] && { - echo "Invalid image type." - return 1 - } - return 0 - ;; - wndr3700 | \ - wnr2000-v3 | \ - wnr612-v2) - local hw_magic - - hw_magic="$(ar71xx_get_mtd_part_magic firmware)" - [ "$magic_long" != "$hw_magic" ] && { - echo "Invalid image, hardware ID mismatch, hw:$hw_magic image:$magic_long." - return 1 - } - return 0 - ;; - nbg6716 | \ - 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" - 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 - ;; - esac - - echo "Sysupgrade is not yet supported on $board." - return 1 -} - -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 ) - platform_do_upgrade_allnet "0x9f050000" "$ARGV" - ;; - all0315n ) - platform_do_upgrade_allnet "0x9f080000" "$ARGV" - ;; - eap300v2 |\ - cap4200ag) - platform_do_upgrade_allnet "0xbf0a0000" "$ARGV" - ;; - dir-825-b1 |\ - tew-673gru) - platform_do_upgrade_dir825b "$ARGV" - ;; - mr600 | \ - mr600v2 | \ - om2p | \ - om2pv2 | \ - om2p-hs | \ - om2p-hsv2 | \ - om2p-lc | \ - om5p) - platform_do_upgrade_openmesh "$ARGV" - ;; - uap-pro) - MTD_CONFIG_ARGS="-s 0x180000" - default_do_upgrade "$ARGV" - ;; - *) - default_do_upgrade "$ARGV" - ;; - 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 |