diff options
author | Adrian Schmutzler <freifunk@adrianschmutzler.de> | 2020-08-07 15:25:12 +0200 |
---|---|---|
committer | Adrian Schmutzler <freifunk@adrianschmutzler.de> | 2020-08-30 22:18:35 +0200 |
commit | 4e4ee4649553ab536225060a27fc320bf54e458c (patch) | |
tree | 711fbf5485f94baec8b708edba00c7250b923872 /target/linux/ar71xx/base-files/lib | |
parent | 47b2ee2d9a9a1790f9bf8a528640c333af39e4ba (diff) | |
download | upstream-4e4ee4649553ab536225060a27fc320bf54e458c.tar.gz upstream-4e4ee4649553ab536225060a27fc320bf54e458c.tar.bz2 upstream-4e4ee4649553ab536225060a27fc320bf54e458c.zip |
ar71xx: drop target
This target has been mostly replaced by ath79 and won't be included
in the upcoming release anymore. Finally put it to rest.
This also removes all references in packages, tools, etc. as well as
the uboot-ar71xx and vsc73x5-ucode packages.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Diffstat (limited to 'target/linux/ar71xx/base-files/lib')
10 files changed, 0 insertions, 3397 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 044ef4eae5..0000000000 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ /dev/null @@ -1,1589 +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 iflag=skip_bytes bs=$size skip=$offset count=1 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") - model="$(ar71xx_get_mtd_offset_size_format art 41 32 %c)" - # Use awk to remove everything unprintable - model_stripped="$(ar71xx_get_mtd_offset_size_format art 41 32 %c | LC_CTYPE=C awk -v 'FS=[^[:print:]]' '{print $1; exit}')" - case $model in - $'\xff'*) - if [ "${model:24:1}" = 'N' ]; then - machine="NETGEAR WNDRMAC" - else - machine="NETGEAR WNDR3700v2" - fi - ;; - '29763654+16+64'*) - machine="NETGEAR ${model_stripped:14}" - ;; - '29763654+16+128'*) - machine="NETGEAR ${model_stripped:15}" - ;; - *) - # Unknown ID - machine="NETGEAR ${model_stripped}" - esac - esac - - AR71XX_BOARD_NAME="$name" - AR71XX_MODEL="$machine" -} - -ubnt_get_mtd_part_magic() { - ar71xx_get_mtd_offset_size_format EEPROM 4118 2 %02x -} - -ubnt_xm_board_detect() { - local model - local magic - - magic="$(ubnt_get_mtd_part_magic)" - case ${magic:0:3} in - "e00"|\ - "e01"|\ - "e80") - model="Ubiquiti NanoStation M" - ;; - "e0a") - model="Ubiquiti NanoStation loco M" - ;; - "e1b"|\ - "e1d") - model="Ubiquiti Rocket M" - ;; - "e20"|\ - "e2d") - model="Ubiquiti Bullet M" - ;; - "e30") - model="Ubiquiti PicoStation M" - ;; - esac - - [ -z "$model" ] || AR71XX_MODEL="${model}${magic:3:1}" -} - -ubnt_unifi_ac_get_mtd_part_magic() { - ar71xx_get_mtd_offset_size_format EEPROM 12 2 %02x -} - -ubnt_unifi_ac_board_detect() { - local model - local magic - - magic="$(ubnt_unifi_ac_get_mtd_part_magic)" - case ${magic:0:4} in - "e517") - model="Ubiquiti UniFi-AC-LITE" - ;; - "e527") - model="Ubiquiti UniFi-AC-LR" - ;; - "e537") - model="Ubiquiti UniFi-AC-PRO" - ;; - "e557") - model="Ubiquiti UniFi-AC-MESH" - ;; - "e567") - model="Ubiquiti UniFi-AC-MESH-PRO" - ;; - esac - - [ -z "$model" ] || AR71XX_MODEL="${model}" -} - -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"' -} - -dir505_board_detect() { - local dev=$(find_mtd_part 'mac') - [ -z "$dev" ] && return - - # The revision is stored at the beginning of the "mac" partition - local rev="$(LC_CTYPE=C awk -v 'FS=[^[:print:]]' '{print $1; exit}' $dev)" - AR71XX_MODEL="D-Link DIR-505 rev. $rev" -} - -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 - "001001"*) - model="TP-Link TL-MR10U" - ;; - "001101"*) - model="TP-Link TL-MR11U" - ;; - "001201"*) - model="TP-Link TL-MR12U" - ;; - "001301"*) - model="TP-Link TL-MR13U" - ;; - "007260"*) - model="TellStick ZNet Lite" - ;; - "015000"*) - model="EasyLink EL-M150" - ;; - "015300"*) - model="EasyLink EL-MINI" - ;; - "044401"*) - model="ANTMINER-S1" - ;; - "044403"*) - model="ANTMINER-S3" - ;; - "066601"*) - model="OMYlink OMY-G1" - ;; - "066602"*) - model="OMYlink OMY-X1" - ;; - "070100"*) - model="TP-Link TL-WA701N/ND" - ;; - "070301"*) - model="TP-Link TL-WR703N" - ;; - "071000"*) - model="TP-Link TL-WR710N" - - [ "$hwid" = '07100002' -a "$mid" = '00000002' ] && hwver=' v2.1' - ;; - "072001"*) - model="TP-Link TL-WR720N" - ;; - "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" - ;; - "080100"*) - model="TP-Link TL-WA801N/ND" - ;; - "080200"*) - model="TP-Link TL-WR802N" - - [ "$hwid" = '08020002' -a "$mid" = '00000002' ] && hwver=' v2' - ;; - "081000"*) - model="TP-Link TL-WR810N" - ;; - "083000"*) - model="TP-Link TL-WA830RE" - - [ "$hwver" = ' v10' ] && hwver=' v1' - ;; - "084100"*) - model="TP-Link TL-WR841N/ND" - - [ "$hwid" = '08410002' -a "$mid" = '00000002' ] && hwver=' v1.5' - ;; - "084200"*) - model="TP-Link TL-WR842N/ND" - ;; - "084300"*) - model="TP-Link TL-WR843N/ND" - ;; - "085000"*) - model="TP-Link TL-WA850RE" - ;; - "085500"*) - model="TP-Link TL-WA855RE" - ;; - "086000"*) - model="TP-Link TL-WA860RE" - ;; - "090100"*) - model="TP-Link TL-WA901N/ND" - ;; - "094000"*) - model="TP-Link TL-WR940N" - ;; - "094100"*) - model="TP-Link TL-WR941N/ND" - - [ "$hwid" = "09410002" -a "$mid" = "00420001" ] && { - model="Rosewill RNX-N360RT" - hwver="" - } - ;; - "104100"*) - model="TP-Link TL-WR1041N/ND" - ;; - "104300"*) - model="TP-Link TL-WR1043N/ND" - ;; - "120000"*) - model="MERCURY MAC1200R" - ;; - "254300"*) - model="TP-Link TL-WR2543N/ND" - ;; - "302000"*) - model="TP-Link TL-MR3020" - ;; - "304000"*) - model="TP-Link TL-MR3040" - ;; - "322000"*) - model="TP-Link TL-MR3220" - ;; - "332000"*) - model="TP-Link TL-WDR3320" - ;; - "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" - ;; - "44440101"*) - model="ANTROUTER-R1" - ;; - "453000"*) - model="Mercury MW4530R" - ;; - "49000002") - model="TP-Link TL-WDR4900" - ;; - "640000"*) - model="TP-Link TL-MR6400" - ;; - "65000002") - model="TP-Link TL-WDR6500" - ;; - "721000"*) - model="TP-Link TL-WA7210N" - ;; - "750000"*|\ - "c70000"*) - model="TP-Link Archer C7" - ;; - "751000"*) - model="TP-Link TL-WA7510N" - ;; - "934100"*) - model="NC-LINK SMART-300" - ;; - "c50000"*) - model="TP-Link Archer C5" - ;; - *) - hwver="" - ;; - esac - - AR71XX_MODEL="$model$hwver" -} - -tplink_pharos_get_model_string() { - local part - part=$(find_mtd_part 'product-info') - [ -z "$part" ] && return 1 - - # The returned string will end with \r\n, but we don't remove it here - # to simplify matching against it in the sysupgrade image check - dd if=$part bs=1 skip=4360 2>/dev/null | head -n 1 -} - -tplink_pharos_board_detect() { - local model_string="$1" - local oIFS="$IFS"; IFS=":"; set -- $model_string; IFS="$oIFS" - - local model="${1%%\(*}" - - AR71XX_MODEL="TP-Link $model v$2" -} - -tplink_pharos_v2_get_model_string() { - local part - part=$(find_mtd_part 'product-info') - [ -z "$part" ] && return 1 - - dd if=$part iflag=skip_bytes bs=64 skip=4360 count=1 2>/dev/null | tr -d '\r\0' | head -n 1 -} - -mikrotik_board_detect() { - local machine="$1" - - case "$machine" in - *"2011iL") - name="rb-2011il" - ;; - *"2011iLS") - name="rb-2011ils" - ;; - *"2011L") - name="rb-2011l" - ;; - *"2011UAS") - name="rb-2011uas" - ;; - *"2011UAS-2HnD") - name="rb-2011uas-2hnd" - ;; - *"2011UiAS") - name="rb-2011uias" - ;; - *"2011UiAS-2HnD") - name="rb-2011uias-2hnd" - ;; - *"2011UiAS-2HnD r2") - name="rb-2011uias-2hnd-r2" - ;; - *"411/A/AH") - name="rb-411" - ;; - *"411U") - name="rb-411u" - ;; - *"433/AH") - name="rb-433" - ;; - *"433UAH") - name="rb-433u" - ;; - *"435G") - name="rb-435g" - ;; - *"450") - name="rb-450" - ;; - *"450G") - name="rb-450g" - ;; - *"493/AH") - name="rb-493" - ;; - *"493G") - name="rb-493g" - ;; - *"750") - name="rb-750" - ;; - *"750 r2"|\ - *"750r2") - name="rb-750-r2" - ;; - *"750GL") - name="rb-750gl" - ;; - *"750P r2") - name="rb-750p-pbr2" - ;; - *"750UP r2"|\ - *"750UPr2") - name="rb-750up-r2" - ;; - *"751") - name="rb-751" - ;; - *"751G") - name="rb-751g" - ;; - *"911-2Hn") - name="rb-911-2hn" - ;; - *"911-5Hn") - name="rb-911-5hn" - ;; - *"911G-2HPnD") - name="rb-911g-2hpnd" - ;; - *"911G-5HPacD") - name="rb-911g-5hpacd" - ;; - *"911G-5HPnD") - name="rb-911g-5hpnd" - ;; - *"912UAG-2HPnD") - name="rb-912uag-2hpnd" - ;; - *"912UAG-5HPnD") - name="rb-912uag-5hpnd" - ;; - *"921GS-5HPacD r2") - name="rb-921gs-5hpacd-r2" - ;; - *"922UAGS-5HPacD") - name="rb-922uags-5hpacd" - ;; - *"931-2nD") - name="rb-931-2nd" - ;; - *"941-2nD") - name="rb-941-2nd" - ;; - *"951G-2HnD") - name="rb-951g-2hnd" - ;; - *"951Ui-2HnD") - name="rb-951ui-2hnd" - ;; - *"951Ui-2nD") - name="rb-951ui-2nd" - ;; - *"952Ui-5ac2nD") - name="rb-952ui-5ac2nd" - ;; - *"962UiGS-5HacT2HnT") - name="rb-962uigs-5hact2hnt" - ;; - *"LHG 5nD") - name="rb-lhg-5nd" - ;; - *"mAP 2nD"|\ - *"mAP2nD") - name="rb-map-2nd" - ;; - *"mAP L-2nD"|\ - *"mAPL-2nD") - name="rb-mapl-2nd" - ;; - *"SXT 2nD r3") - name="rb-sxt-2nd-r3" - ;; - *"SXT Lite2") - name="rb-sxt2n" - ;; - *"SXT Lite5") - name="rb-sxt5n" - ;; - *"wAP 2nD r2") - name="rb-wap-2nd" - ;; - *"wAP R-2nD"|\ - *"wAPR-2nD") - name="rb-wapr-2nd" - ;; - *"wAP G-5HacT2HnD"|\ - *"wAPG-5HacT2HnD") - name="rb-wapg-5hact2hnd" - ;; - esac - - echo "$name" -} - -ar71xx_board_detect() { - local machine - local name - - machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo) - - case "$machine" in - *"A40") - name="a40" - ;; - *"A60") - name="a60" - ;; - *"AC1750DB") - name="f9k1115v2" - ;; - *"AirGateway") - name="airgateway" - ;; - *"AirGateway Pro") - name="airgatewaypro" - ;; - *"AirRouter") - name="airrouter" - ;; - *"ALFA Network AP120C") - name="alfa-ap120c" - ;; - *"ALFA Network AP96") - name="alfa-ap96" - ;; - *"ALFA Network N2/N5") - name="alfa-nx" - ;; - *"ALL0258N") - name="all0258n" - ;; - *"ALL0305") - name="all0305" - ;; - *"ALL0315N") - name="all0315n" - ;; - *"Antminer-S1") - name="antminer-s1" - ;; - *"Antminer-S3") - name="antminer-s3" - ;; - *"AP121 reference board") - name="ap121" - ;; - *"AP121-MINI") - name="ap121-mini" - ;; - *"AP121F") - name="ap121f" - ;; - *"AP132 reference board") - name="ap132" - ;; - *"AP135-020 reference board") - name="ap135-020" - ;; - *"AP136-010 reference board") - name="ap136-010" - ;; - *"AP136-020 reference board") - name="ap136-020" - ;; - *"AP143 reference board") - name="ap143" - ;; - *"AP147-010 reference board") - name="ap147-010" - ;; - *"AP152 reference board") - name="ap152" - ;; - *"AP531B0") - name="ap531b0" - ;; - *"AP90Q") - name="ap90q" - ;; - *"AP91-5G") - name="ap91-5g" - ;; - *"Archer C25 v1") - name="archer-c25-v1" - ;; - *"Archer C5") - name="archer-c5" - ;; - *"Archer C7 v4") - name="archer-c7-v4" - ;; - *"Archer C7 v5") - name="archer-c7-v5" - ;; - *"Archer C58 v1") - name="archer-c58-v1" - ;; - *"Archer C59 v1") - name="archer-c59-v1" - ;; - *"Archer C59 v2") - name="archer-c59-v2" - ;; - *"Archer C60 v1") - name="archer-c60-v1" - ;; - *"Archer C60 v2") - name="archer-c60-v2" - ;; - *"Archer C7") - name="archer-c7" - ;; - *"Arduino Yun") - name="arduino-yun" - ;; - *"Atheros AP96") - name="ap96" - ;; - *"AW-NR580") - name="aw-nr580" - ;; - *"BHR-4GRV2") - name="bhr-4grv2" - ;; - *"Black Swift board"*) - name="bsb" - ;; - *"Bullet M") - name="bullet-m" - ubnt_xm_board_detect - ;; - *"Bullet M XW") - name="bullet-m-xw" - ;; - *"BXU2000n-2 rev. A1") - name="bxu2000n-2-a1" - ;; - *"C-55") - name="c-55" - ;; - *"C-60") - name="c-60" - ;; - *"CAP324") - name="cap324" - ;; - *"CAP4200AG") - name="cap4200ag" - ;; - *"Carambola2"*) - name="carambola2" - ;; - *"CF-E316N v2") - name="cf-e316n-v2" - ;; - *"CF-E320N v2") - name="cf-e320n-v2" - ;; - *"CF-E355AC v1") - name="cf-e355ac-v1" - ;; - *"CF-E355AC v2") - name="cf-e355ac-v2" - ;; - *"CF-E375AC") - name="cf-e375ac" - ;; - *"CF-E380AC v1") - name="cf-e380ac-v1" - ;; - *"CF-E380AC v2") - name="cf-e380ac-v2" - ;; - *"CF-E385AC") - name="cf-e385ac" - ;; - *"CF-E520N") - name="cf-e520n" - ;; - *"CF-E530N") - name="cf-e530n" - ;; - *"CPE210/220") - name="cpe210" - tplink_pharos_board_detect "$(tplink_pharos_get_model_string | tr -d '\r')" - ;; - *"CPE210 v2") - name="cpe210-v2" - tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)" - ;; - *"CPE210 v3") - name="cpe210-v3" - tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)" - ;; - *"CPE505N") - name="cpe505n" - ;; - *"CPE510/520") - name="cpe510" - tplink_pharos_board_detect "$(tplink_pharos_get_model_string | tr -d '\r')" - ;; - *"CPE510 v2") - name="cpe510-v2" - tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)" - ;; - *"CPE830") - name="cpe830" - ;; - *"CPE870") - name="cpe870" - ;; - *"CR3000") - name="cr3000" - ;; - *"CR5000") - name="cr5000" - ;; - *"DAP-1330 Rev. A1") - name="dap-1330-a1" - ;; - *"DAP-2695 rev. A1") - name="dap-2695-a1" - ;; - *"DB120 reference board") - name="db120" - ;; - *"DGL-5500 rev. A1") - name="dgl-5500-a1" - ;; - *"DHP-1565 rev. A1") - name="dhp-1565-a1" - ;; - *"DIR-505 rev. A1") - name="dir-505-a1" - dir505_board_detect - ;; - *"DIR-600 rev. A1") - name="dir-600-a1" - ;; - *"DIR-615 rev. C1") - name="dir-615-c1" - ;; - *"DIR-615 rev. E1") - name="dir-615-e1" - ;; - *"DIR-615 rev. E4") - name="dir-615-e4" - ;; - *"DIR-615 rev. I1") - name="dir-615-i1" - ;; - *"DIR-825 rev. B1") - name="dir-825-b1" - ;; - *"DIR-825 rev. C1") - name="dir-825-c1" - ;; - *"DIR-835 rev. A1") - name="dir-835-a1" - ;; - *"DIR-869 rev. A1") - name="dir-869-a1" - ;; - *"dLAN Hotspot") - name="dlan-hotspot" - ;; - *"dLAN pro 1200+ WiFi ac") - name="dlan-pro-1200-ac" - ;; - *"dLAN pro 500 Wireless+") - name="dlan-pro-500-wp" - ;; - *"Domino Pi") - name="gl-domino" - ;; - *"DR342") - name="dr342" - ;; - *"DR344") - name="dr344" - ;; - *"DR531") - name="dr531" - ;; - *"Dragino v2") - name="dragino2" - ;; - *"DW33D") - name="dw33d" - ;; - *"E1700AC v2") - name="e1700ac-v2" - ;; - *"E2100L") - name="e2100l" - ;; - *"E558 v2") - name="e558-v2" - ;; - *"E600G v2") - name="e600g-v2" - ;; - *"E600GAC v2") - name="e600gac-v2" - ;; - *"E750A v4") - name="e750a-v4" - ;; - *"E750G v8") - name="e750g-v8" - ;; - *"EAP120") - name="eap120" - tplink_pharos_board_detect "$(tplink_pharos_get_model_string | tr -d '\r')" - ;; - *"EAP300 v2") - name="eap300v2" - ;; - *"EAP7660D") - name="eap7660d" - ;; - *"EBR-2310 rev. C1") - name="ebr-2310-c1" - ;; - *"EL-M150") - name="el-m150" - ;; - *"EL-MINI") - name="el-mini" - ;; - *"EmbWir-Balin") - name="ew-balin" - ;; - *"EmbWir-Dorin") - name="ew-dorin" - ;; - *"EmbWir-Dorin-Router") - name="ew-dorin-router" - ;; - *"ENS202EXT") - name="ens202ext" - ;; - *"EPG5000") - name="epg5000" - ;; - *"ESR1750") - name="esr1750" - ;; - *"ESR900") - name="esr900" - ;; - *"eTactica EG-200") - name="rme-eg200" - ;; - *"FRITZ!Box 4020") - name="fritz4020" - ;; - *"FRITZ!WLAN Repeater 300E") - name="fritz300e" - ;; - *"FRITZ!WLAN Repeater 450E") - name="fritz450e" - ;; - *"GL-AR150") - name="gl-ar150" - ;; - *"GL-AR300") - name="gl-ar300" - ;; - *"GL-AR300M") - name="gl-ar300m" - ;; - *"GL-AR750") - name="gl-ar750" - ;; - *"GL-AR750S") - name="gl-ar750s" - ;; - *"GL-CONNECT INET v1") - name="gl-inet" - - local size="$(mtd_get_part_size 'firmware')" - - [ "$size" = "8192000" ] && AR71XX_MODEL="GL-iNet 6408A v1" - [ "$size" = "16580608" ] && AR71XX_MODEL="GL-iNet 6416A v1" - ;; - *"GL-MIFI") - name="gl-mifi" - ;; - *"GL-USB150") - name="gl-usb150" - ;; - *"HiveAP-121") - name="hiveap-121" - ;; - *"HiWiFi HC6361") - name="hiwifi-hc6361" - ;; - *"Hornet-UB") - local size="$(mtd_get_part_size 'firmware')" - - [ "$size" = "7929856" ] && name="hornet-ub" - [ "$size" = "16318464" ] && name="hornet-ub-x2" - ;; - *"JA76PF") - name="ja76pf" - ;; - *"JA76PF2") - name="ja76pf2" - ;; - *"JWAP003") - name="jwap003" - ;; - *"JWAP230") - name="jwap230" - ;; - *"Koala") - name="koala" - ;; - *"LAN Turtle") - name="lan-turtle" - ;; - *"Lima"*) - name="lima" - ;; - *"Litebeam M5"*) - name="lbe-m5" - ;; - *"Loco M XW") - name="loco-m-xw" - ;; - *"LS-SR71") - name="ls-sr71" - ;; - *"MAC1200R") - name="mc-mac1200r" - ;; - "MikroTik"*|\ - "Mikrotik"*) - name=$(mikrotik_board_detect "$machine") - ;; - *"MiniBox V1.0") - name="minibox-v1" - ;; - *"Minibox V3.2") - name="minibox-v3.2" - ;; - *"MR12") - name="mr12" - ;; - *"MR16") - name="mr16" - ;; - *"MR1750") - name="mr1750" - ;; - *"MR1750v2") - name="mr1750v2" - ;; - *"MR18") - name="mr18" - ;; - *"MR600") - name="mr600" - ;; - *"MR600v2") - name="mr600v2" - ;; - *"MR900") - name="mr900" - ;; - *"MR900v2") - name="mr900v2" - ;; - *"My Net N600") - name="mynet-n600" - ;; - *"My Net N750") - name="mynet-n750" - ;; - *"My Net Wi-Fi Range Extender") - name="mynet-rext" - ;; - *"MZK-W04NU") - name="mzk-w04nu" - ;; - *"MZK-W300NH") - name="mzk-w300nh" - ;; - *"N5Q") - name="n5q" - ;; - *"Nanostation M") - name="nanostation-m" - ubnt_xm_board_detect - ;; - *"Nanostation M XW") - name="nanostation-m-xw" - ;; - *"NBG460N/550N/550NH") - name="nbg460n_550n_550nh" - ;; - *"NBG6616") - name="nbg6616" - ;; - *"NBG6716") - name="nbg6716" - ;; - *"OM2P") - name="om2p" - ;; - *"OM2P HS") - name="om2p-hs" - ;; - *"OM2P HSv2") - name="om2p-hsv2" - ;; - *"OM2P HSv3") - name="om2p-hsv3" - ;; - *"OM2P HSv4") - name="om2p-hsv4" - ;; - *"OM2P LC") - name="om2p-lc" - ;; - *"OM2Pv2") - name="om2pv2" - ;; - *"OM2Pv4") - name="om2pv4" - ;; - *"OM5P") - name="om5p" - ;; - *"OM5P AC") - name="om5p-ac" - ;; - *"OM5P ACv2") - name="om5p-acv2" - ;; - *"OM5P AN") - name="om5p-an" - ;; - *"OMY-G1") - name="omy-g1" - ;; - *"OMY-X1") - name="omy-x1" - ;; - *"Onion Omega") - name="onion-omega" - ;; - *"Oolite V1.0") - name="oolite-v1" - ;; - *"Packet Squirrel") - name="packet-squirrel" - ;; - *"Oolite V5.2") - name="oolite-v5.2" - ;; - *"Oolite V5.2-Dev") - name="oolite-v5.2-dev" - ;; - *"PB42") - name="pb42" - ;; - *"PB44 reference board") - name="pb44" - ;; - *"PQI Air Pen") - name="pqi-air-pen" - ;; - *"Qihoo 360 C301") - name="qihoo-c301" - ;; - *"R36A") - name="r36a" - ;; - *"R602N") - name="r602n" - ;; - *"R6100") - name="r6100" - ;; - *"Rambutan"*) - name="rambutan" - ;; - *"RE355") - name="re355" - ;; - *"RE450") - name="re450" - ;; - *"Rocket M") - name="rocket-m" - ubnt_xm_board_detect - ;; - *"Rocket M TI") - name="rocket-m-ti" - ;; - *"Rocket M XW") - name="rocket-m-xw" - ;; - *"RouterStation") - name="routerstation" - ;; - *"RouterStation Pro") - name="routerstation-pro" - ;; - *"RUT900") - name="rut900" - ;; - *"RW2458N") - name="rw2458n" - ;; - *"SC1750") - name="sc1750" - ;; - *"SC300M") - name="sc300m" - ;; - *"SC450") - name="sc450" - ;; - *"SMART-300") - name="smart-300" - ;; - *"SOM9331") - name="som9331" - ;; - *"SR3200") - name="sr3200" - ;; - *"T830") - name="t830" - ;; - *"TellStick ZNet Lite") - name="tellstick-znet-lite" - ;; - *"TEW-632BRP") - name="tew-632brp" - ;; - *"TEW-673GRU") - name="tew-673gru" - ;; - *"TEW-712BR") - name="tew-712br" - ;; - *"TEW-732BR") - name="tew-732br" - ;; - *"TEW-823DRU") - name="tew-823dru" - ;; - *"TL-MR10U") - name="tl-mr10u" - ;; - *"TL-MR11U") - name="tl-mr11u" - ;; - *"TL-MR12U") - name="tl-mr12u" - ;; - *"TL-MR13U v1") - name="tl-mr13u" - ;; - *"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-MR6400") - name="tl-mr6400" - ;; - *"TL-WA701ND v2") - name="tl-wa701nd-v2" - ;; - *"TL-WA7210N v2") - name="tl-wa7210n-v2" - ;; - *"TL-WA750RE") - name="tl-wa750re" - ;; - *"TL-WA7510N v1") - name="tl-wa7510n" - ;; - *"TL-WA801ND v2") - name="tl-wa801nd-v2" - ;; - *"TL-WA801ND v3") - name="tl-wa801nd-v3" - ;; - *"TL-WA830RE v2") - name="tl-wa830re-v2" - ;; - *"TL-WA850RE") - name="tl-wa850re" - ;; - *"TL-WA850RE v2") - name="tl-wa850re-v2" - ;; - *"TL-WA855RE v1") - name="tl-wa855re-v1" - ;; - *"TL-WA860RE") - name="tl-wa860re" - ;; - *"TL-WA901ND") - name="tl-wa901nd" - ;; - *"TL-WA901ND v2") - name="tl-wa901nd-v2" - ;; - *"TL-WA901ND v3") - name="tl-wa901nd-v3" - ;; - *"TL-WA901ND v4") - name="tl-wa901nd-v4" - ;; - *"TL-WA901ND v5") - name="tl-wa901nd-v5" - ;; - *"TL-WDR3320 v2") - name="tl-wdr3320-v2" - ;; - *"TL-WDR3500") - name="tl-wdr3500" - ;; - *"TL-WDR3600/4300/4310") - name="tl-wdr4300" - ;; - *"TL-WDR4900 v2") - name="tl-wdr4900-v2" - ;; - *"TL-WDR6500 v2") - name="tl-wdr6500-v2" - ;; - *"TL-WPA8630") - name="tl-wpa8630" - ;; - *"TL-WR1041N v2") - name="tl-wr1041n-v2" - ;; - *"TL-WR1043N v5") - name="tl-wr1043n-v5" - ;; - *"TL-WR1043ND") - name="tl-wr1043nd" - ;; - *"TL-WR1043ND v2") - name="tl-wr1043nd-v2" - ;; - *"TL-WR1043ND v4") - name="tl-wr1043nd-v4" - ;; - *"TL-WR2543N"*) - name="tl-wr2543n" - ;; - *"TL-WR703N v1") - name="tl-wr703n" - ;; - *"TL-WR710N v1") - name="tl-wr710n" - ;; - *"TL-WR720N"*) - name="tl-wr720n-v3" - ;; - *"TL-WR740N/ND v6") - name="tl-wr740n-v6" - ;; - *"TL-WR741ND") - name="tl-wr741nd" - ;; - *"TL-WR741ND v4") - name="tl-wr741nd-v4" - ;; - *"TL-WR802N v1") - name="tl-wr802n-v1" - ;; - *"TL-WR802N v2") - name="tl-wr802n-v2" - ;; - *"TL-WR810N") - name="tl-wr810n" - ;; - *"TL-WR810N v2") - name="tl-wr810n-v2" - ;; - *"TL-WR840N v2") - name="tl-wr840n-v2" - ;; - *"TL-WR840N v3") - name="tl-wr840n-v3" - ;; - *"TL-WR841N v1") - name="tl-wr841n-v1" - ;; - *"TL-WR841N/ND v11") - name="tl-wr841n-v11" - ;; - *"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-WR842N/ND v3") - name="tl-wr842n-v3" - ;; - *"TL-WR902AC v1") - name="tl-wr902ac-v1" - ;; - *"TL-WR940N v4") - name="tl-wr940n-v4" - ;; - *"TL-WR940N v6") - name="tl-wr940n-v6" - ;; - *"TL-WR941N/ND v5") - name="tl-wr941nd-v5" - ;; - *"TL-WR941N/ND v6") - name="tl-wr941nd-v6" - ;; - *"TL-WR941ND") - name="tl-wr941nd" - ;; - *"TL-WR942N v1") - name="tl-wr942n-v1" - ;; - *"TS-D084") - name="ts-d084" - ;; - *"Tube2H") - name="tube2h" - ;; - *"UniFi") - name="unifi" - ;; - *"UniFi AP Pro") - name="uap-pro" - ;; - *"UniFi-AC-LITE/MESH") - name="unifiac-lite" - ubnt_unifi_ac_board_detect - ;; - *"UniFi-AC-PRO/MESH-PRO") - name="unifiac-pro" - ubnt_unifi_ac_board_detect - ;; - *"UniFiAP Outdoor") - name="unifi-outdoor" - ;; - *"UniFiAP Outdoor+") - name="unifi-outdoor-plus" - ;; - *"WAM250") - name="wam250" - ;; - *"WBS210") - name="wbs210" - tplink_pharos_board_detect "$(tplink_pharos_get_model_string | tr -d '\r')" - ;; - *"WBS510") - name="wbs510" - tplink_pharos_board_detect "$(tplink_pharos_get_model_string | tr -d '\r')" - ;; - "WeIO"*) - name="weio" - ;; - *"WI2A-AC200i") - name="wi2a-ac200i" - ;; - *"WHR-G301N") - name="whr-g301n" - ;; - *"WHR-HP-G300N") - name="whr-hp-g300n" - ;; - *"WHR-HP-GN") - name="whr-hp-gn" - ;; - *"WiFi Pineapple NANO") - name="wifi-pineapple-nano" - ;; - *"WLAE-AG300N") - name="wlae-ag300n" - ;; - *"WLR-8100") - name="wlr8100" - ;; - *"WNDAP360") - name="wndap360" - ;; - *"WNDR3700/WNDR3800/WNDRMAC") - wndr3700_board_detect "$machine" - ;; - *"WNDR3700v4") - name="wndr3700v4" - ;; - *"WNDR4300") - name="wndr4300" - ;; - *"WNR1000 V2") - name="wnr1000-v2" - ;; - *"WNR2000") - name="wnr2000" - ;; - *"WNR2000 V3") - name="wnr2000-v3" - ;; - *"WNR2000 V4") - name="wnr2000-v4" - ;; - *"WNR2200") - name="wnr2200" - ;; - *"WNR612 V2") - name="wnr612-v2" - ;; - *"WP543") - name="wp543" - ;; - *"WPE72") - name="wpe72" - ;; - *"WPJ342") - name="wpj342" - ;; - *"WPJ344") - name="wpj344" - ;; - *"WPJ531") - name="wpj531" - ;; - *"WPJ558") - name="wpj558" - ;; - *"WPJ563") - name="wpj563" - ;; - *"WPN824N") - name="wpn824n" - ;; - *"WRT160NL") - name="wrt160nl" - ;; - *"WRT400N") - name="wrt400n" - ;; - *"WRTnode2Q"*) - name="wrtnode2q" - ;; - *"WZR-450HP2") - name="wzr-450hp2" - ;; - *"WZR-HP-AG300H/WZR-600DHP") - name="wzr-hp-ag300h" - ;; - *"WZR-HP-G300NH") - name="wzr-hp-g300nh" - ;; - *"WZR-HP-G300NH2") - name="wzr-hp-g300nh2" - ;; - *"WZR-HP-G450H") - name="wzr-hp-g450h" - ;; - *"XD3200") - name="xd3200" - ;; - *"Z1") - name="z1" - ;; - *"ZBT-WE1526") - name="zbt-we1526" - ;; - *"ZCN-1523H-2") - name="zcn-1523h-2" - ;; - *"ZCN-1523H-5") - name="zcn-1523h-5" - ;; - esac - - [ -z "$AR71XX_MODEL" ] && [ "${machine:0:8}" = 'TP-LINK ' ] && \ - tplink_board_detect "$machine" - - [ -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 -} diff --git a/target/linux/ar71xx/base-files/lib/preinit/01_preinit_do_ar71xx.sh b/target/linux/ar71xx/base-files/lib/preinit/01_preinit_do_ar71xx.sh deleted file mode 100644 index ff5407a0d4..0000000000 --- a/target/linux/ar71xx/base-files/lib/preinit/01_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 b0aa150817..0000000000 --- a/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx +++ /dev/null @@ -1,60 +0,0 @@ -# -# Copyright (C) 2009 OpenWrt.org -# - -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() { - . /lib/functions.sh - - case $(board_name) in - c-55|\ - c-60) - mac_lan=$(mtd_get_mac_binary art 0x0) - [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan" - ;; - dir-615-c1|\ - tew-632brp) - fetch_mac_from_mtd config lan_mac wan_mac - ;; - dir-615-i1) - fetch_mac_from_mtd nvram sys_lan_mac sys_wan_mac - ;; - mr18|\ - z1) - mac_lan=$(mtd_get_mac_binary_ubi board-config 0x66) - [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan" - ;; - r6100) - mac_lan=$(mtd_get_mac_binary caldata 0x0) - [ -n "$mac_lan" ] && ifconfig eth1 hw ether "$mac_lan" - mac_wan=$(mtd_get_mac_binary caldata 0x6) - [ -n "$mac_wan" ] && ifconfig eth0 hw ether "$mac_wan" - ;; - rambutan) - mac_lan=$(mtd_get_mac_binary art 0x0) - [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan" - mac_wan=$(mtd_get_mac_binary art 0x6) - [ -n "$mac_wan" ] && ifconfig eth1 hw ether "$mac_wan" - ;; - 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 68875fa1ec..0000000000 --- a/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh - -# -# Copyright (C) 2009 OpenWrt.org -# - -set_preinit_iface() { - . /lib/functions.sh - - case $(board_name) in - alfa-ap96|\ - alfa-nx|\ - ap135-020|\ - ap136-020|\ - ap147-010|\ - archer-c5|\ - archer-c7|\ - bhr-4grv2|\ - dir-505-a1|\ - gl-ar750|\ - 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|\ - tl-wr940n-v4|\ - tl-wr940n-v6|\ - tl-wr941nd-v6|\ - wnr1000-v2|\ - wnr2000-v3|\ - wnr2200|\ - wnr612-v2|\ - wpe72|\ - wpn824n) - ifname=eth1 - ;; - *) - ifname=eth0 - ;; - esac -} - -boot_hook_add preinit_main set_preinit_iface diff --git a/target/linux/ar71xx/base-files/lib/preinit/82_patch_ath10k b/target/linux/ar71xx/base-files/lib/preinit/82_patch_ath10k deleted file mode 100644 index cc3dc42c9c..0000000000 --- a/target/linux/ar71xx/base-files/lib/preinit/82_patch_ath10k +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh - -. /lib/functions.sh -. /lib/functions/system.sh - -do_patch_ath10k_firmware() { - local firmware_file="/lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin" - - # bail out if firmware does not exist - [ -f "$firmware_file" ] || return - - local mac_offset=276 - local mac_length=6 - local default_mac="00:03:07:12:34:56" - local current_mac="$(hexdump -v -n $mac_length -s $mac_offset -e '5/1 "%02x:" 1/1 "%02x"' $firmware_file 2>/dev/null)" - - # check if mac address was already patched - [ "$default_mac" = "$current_mac" ] || return - - # some boards have bogus mac in otp (= directly in the PCIe card's EEPROM). - # we have to patch the default mac in the firmware because we cannot change - # the otp. - case $(board_name) in - dgl-5500-a1|\ - tew-823dru) - local mac - mac=$(mtd_get_mac_ascii nvram wlan1_mac) - - cp $firmware_file /tmp/ath10k-firmware.bin - macaddr_2bin $mac | dd of=/tmp/ath10k-firmware.bin \ - conv=notrunc bs=1 seek=$mac_offset count=$mac_length - ;; - esac - - [ -f /tmp/ath10k-firmware.bin ] || return - - cp /tmp/ath10k-firmware.bin $firmware_file - rm /tmp/ath10k-firmware.bin -} - -check_patch_ath10k_firmware() { - case $(board_name) in - dgl-5500-a1|\ - tew-823dru) - do_patch_ath10k_firmware - ;; - esac -} - -boot_hook_add preinit_main check_patch_ath10k_firmware 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 5295d8cfe0..0000000000 --- a/target/linux/ar71xx/base-files/lib/upgrade/allnet.sh +++ /dev/null @@ -1,155 +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. - -# 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 - - mkdir -p /var/lock - 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 e991a06b7a..0000000000 --- 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 "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP" - - 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 "$1" - ;; - "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" "$1" - ;; - esac -} diff --git a/target/linux/ar71xx/base-files/lib/upgrade/merakinand.sh b/target/linux/ar71xx/base-files/lib/upgrade/merakinand.sh deleted file mode 100644 index dfc57b23f5..0000000000 --- a/target/linux/ar71xx/base-files/lib/upgrade/merakinand.sh +++ /dev/null @@ -1,165 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2015-2016 Chris Blake <chrisrblake93@gmail.com> -# -# Custom upgrade script for Meraki NAND devices (ex. MR18) -# Based on dir825.sh and stock nand functions -# -. /lib/ar71xx.sh -. /lib/functions.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"' -} - -meraki_is_caldata_valid() { - local board=$1 - local mtddev=$2 - local magic - - case "$board" in - "mr18") - magic=$(get_magic_at $mtddev 4096) - [ "$magic" != "0202" ] && return 0 - - magic=$(get_magic_at $mtddev 20480) - [ "$magic" != "0202" ] && return 0 - - magic=$(get_magic_at $mtddev 36864) - [ "$magic" != "0202" ] && return 0 - - return 1 - ;; - "z1") - magic=$(get_magic_at $mtddev 4096) - [ "$magic" != "0202" ] && return 0 - - magic=$(get_magic_at $mtddev 86016) - [ "$magic" != "a55a" ] && return 0 - - return 1 - ;; - *) - return 1 - ;; - esac -} - -merakinand_copy_caldata() { - local cal_src=$1 - local cal_dst=$2 - local ubidev="$(nand_find_ubi $CI_UBIPART)" - local board_name="$(board_name)" - local rootfs_size="$(ubinfo /dev/ubi0 -N rootfs_data | grep "Size" | awk '{ print $6 }')" - - # Setup partitions using board name, in case of future platforms - case "$board_name" in - "mr18"|\ - "z1") - # Src is MTD - mtd_src="$(find_mtd_chardev $cal_src)" - [ -n "$mtd_src" ] || { - echo "no mtd device found for partition $cal_src" - exit 1 - } - - # Dest is UBI - # TODO: possibly add create (hard to do when rootfs_data is expanded & mounted) - # Would need to be done from ramdisk - mtd_dst="$(nand_find_volume $ubidev $cal_dst)" - [ -n "$mtd_dst" ] || { - echo "no ubi device found for partition $cal_dst" - exit 1 - } - - meraki_is_caldata_valid "$board_name" "$mtd_src" && { - echo "no valid calibration data found in $cal_src" - exit 1 - } - - meraki_is_caldata_valid "$board_name" "/dev/$mtd_dst" && { - echo "Copying calibration data from $cal_src to $cal_dst..." - dd if="$mtd_src" of=/tmp/caldata.tmp 2>/dev/null - ubiupdatevol "/dev/$mtd_dst" /tmp/caldata.tmp - rm /tmp/caldata.tmp - sync - } - return 0 - ;; - *) - echo "Unsupported device $board_name"; - return 1 - ;; - esac -} - -merakinand_do_kernel_check() { - local board_name="$1" - local tar_file="$2" - local image_magic_word=`(tar xf $tar_file sysupgrade-$board_name/kernel -O 2>/dev/null | dd bs=1 count=4 skip=0 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"')` - - # What is our kernel magic string? - case "$board_name" in - "mr18") - [ "$image_magic_word" == "8e73ed8a" ] && { - echo "pass" && return 0 - } - ;; - "z1") - [ "$image_magic_word" == "4d495053" ] && { - echo "pass" && return 0 - } - ;; - esac - - exit 1 -} - -merakinand_do_platform_check() { - local board_name="$1" - local tar_file="$2" - local control_length=`(tar xf $tar_file sysupgrade-$board_name/CONTROL -O | wc -c) 2> /dev/null` - local file_type="$(identify_tar $2 sysupgrade-$board_name/root)" - local kernel_magic="$(merakinand_do_kernel_check $1 $2)" - - case "$board_name" in - "mr18"|\ - "z1") - [ "$control_length" = 0 -o "$file_type" != "squashfs" -o "$kernel_magic" != "pass" ] && { - echo "Invalid sysupgrade file for $board_name" - return 1 - } - ;; - *) - echo "Unsupported device $board_name"; - return 1 - ;; - esac - - return 0 -} - -merakinand_do_upgrade() { - local tar_file="$1" - local board_name="$(board_name)" - - # Do we need to do any platform tweaks? - case "$board_name" in - "mr18") - # Check and create UBI caldata if it's invalid - merakinand_copy_caldata "odm-caldata" "caldata" - nand_do_upgrade $1 - ;; - "z1") - # Check and create UBI caldata if it's invalid - merakinand_copy_caldata "origcaldata" "caldata" - nand_do_upgrade $1 - ;; - *) - echo "Unsupported device $board_name"; - exit 1 - ;; - 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 f43bdcea7f..0000000000 --- a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh +++ /dev/null @@ -1,232 +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 -} - -platform_check_image_target_openmesh() -{ - img_board_target="$1" - - case "$img_board_target" in - A60) - [ "$board" = "a40" ] && return 0 - [ "$board" = "a60" ] && return 0 - echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform" - return 1 - ;; - OM2P) - [ "$board" = "om2p" ] && return 0 - [ "$board" = "om2pv2" ] && return 0 - [ "$board" = "om2pv4" ] && return 0 - [ "$board" = "om2p-lc" ] && return 0 - [ "$board" = "om2p-hs" ] && return 0 - [ "$board" = "om2p-hsv2" ] && return 0 - [ "$board" = "om2p-hsv3" ] && return 0 - [ "$board" = "om2p-hsv4" ] && return 0 - echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform" - return 1 - ;; - OM5P) - [ "$board" = "om5p" ] && return 0 - [ "$board" = "om5p-an" ] && return 0 - echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform" - return 1 - ;; - OM5PAC) - [ "$board" = "om5p-ac" ] && return 0 - [ "$board" = "om5p-acv2" ] && return 0 - echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform" - return 1 - ;; - MR1750) - [ "$board" = "mr1750" ] && return 0 - [ "$board" = "mr1750v2" ] && return 0 - echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform" - return 1 - ;; - MR600) - [ "$board" = "mr600" ] && return 0 - [ "$board" = "mr600v2" ] && return 0 - echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform" - return 1 - ;; - MR900) - [ "$board" = "mr900" ] && return 0 - [ "$board" = "mr900v2" ] && return 0 - 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 -} - -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 - - platform_check_image_target_openmesh "$img_board_target" || return 1 - - [ $img_num_files -lt 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 "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP" - - 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|OM5PAC|MR600|MR900|MR1750|A60) - 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 - - mkdir -p /var/lock - 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 2391a1de8a..0000000000 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ /dev/null @@ -1,915 +0,0 @@ -# -# Copyright (C) 2011 OpenWrt.org -# - -. /lib/functions/system.sh -. /lib/ar71xx.sh - -PART_NAME=firmware -RAMFS_COPY_DATA='/lib/ar71xx.sh /etc/fw_env.config /var/lock/fw_printenv.lock' -RAMFS_COPY_BIN='nandwrite fw_printenv fw_setenv' - -CI_BLKSZ=65536 -CI_LDADR=0x80060000 - -PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD=0 - -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_find_rootfspart() { - local part - for part in "${1%:*}" "${1#*:}"; do - [ "$part" != "$2" ] && echo "$part" && break - 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 rootfspart=$(platform_find_rootfspart "$partitions" "$kernelpart") - local append="" - [ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP" - - if [ "$PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD" -ne 1 ]; then - ( 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 - elif [ -n "$rootfspart" ]; then - dd if="$1" bs=$CI_BLKSZ skip=1 count=$kern_blocks 2>/dev/null | \ - mtd write - $kernelpart - dd if="$1" bs=$CI_BLKSZ skip=$((1+$kern_blocks)) count=$root_blocks 2>/dev/null | \ - mtd -r $append write - $rootfspart - fi - fi - PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD=0 -} - -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"' -} - -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 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="$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 - } - - return 0 -} - -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"' -} - -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 "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP" - - 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=$(board_name) - local magic="$(get_magic_word "$1")" - local magic_long="$(get_magic_long "$1")" - - [ "$#" -gt 1 ] && return 1 - - case "$board" in - airgateway|\ - airgatewaypro|\ - airrouter|\ - ap121f|\ - ap132|\ - ap531b0|\ - ap90q|\ - archer-c25-v1|\ - archer-c58-v1|\ - archer-c59-v1|\ - archer-c59-v2|\ - archer-c60-v1|\ - archer-c60-v2|\ - archer-c7-v4|\ - archer-c7-v5|\ - arduino-yun|\ - bullet-m|\ - bullet-m-xw|\ - 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|\ - 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|\ - dr342|\ - dr531|\ - dragino2|\ - e1700ac-v2|\ - e558-v2|\ - e600g-v2|\ - e600gac-v2|\ - e750a-v4|\ - e750g-v8|\ - ebr-2310-c1|\ - ens202ext|\ - epg5000|\ - esr1750|\ - esr900|\ - ew-balin|\ - ew-dorin|\ - ew-dorin-router|\ - gl-ar150|\ - gl-ar300m|\ - gl-ar300|\ - gl-ar750|\ - gl-ar750s|\ - gl-domino|\ - gl-mifi|\ - gl-usb150|\ - hiwifi-hc6361|\ - hornet-ub-x2|\ - jwap230|\ - lbe-m5|\ - lima|\ - loco-m-xw|\ - mzk-w04nu|\ - mzk-w300nh|\ - n5q|\ - nanostation-m|\ - nanostation-m-xw|\ - nbg460n_550n_550nh|\ - pqi-air-pen|\ - r36a|\ - r602n|\ - rme-eg200|\ - rocket-m|\ - rocket-m-ti|\ - rocket-m-xw|\ - 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|\ - wam250|\ - weio|\ - whr-g301n|\ - whr-hp-g300n|\ - whr-hp-gn|\ - wlae-ag300n|\ - wndap360|\ - wpj342|\ - wpj344|\ - wpj531|\ - wpj558|\ - wpj563|\ - wrt400n|\ - wrtnode2q|\ - wzr-450hp2|\ - wzr-hp-ag300h|\ - wzr-hp-g300nh|\ - wzr-hp-g300nh2|\ - wzr-hp-g450h|\ - xd3200) - [ "$magic" != "2705" ] && { - echo "Invalid image type." - return 1 - } - - return 0 - ;; - alfa-ap96|\ - alfa-nx|\ - ap121|\ - ap121-mini|\ - ap135-020|\ - ap136-010|\ - ap136-020|\ - ap147-010|\ - ap152|\ - ap91-5g|\ - ap96|\ - bhr-4grv2|\ - bxu2000n-2-a1|\ - db120|\ - dr344|\ - dw33d|\ - f9k1115v2|\ - hornet-ub|\ - mr12|\ - mr16|\ - zbt-we1526|\ - zcn-1523h-2|\ - zcn-1523h-5) - [ "$magic_long" != "68737173" -a "$magic_long" != "19852003" ] && { - echo "Invalid image type." - return 1 - } - - return 0 - ;; - all0258n|\ - all0315n|\ - cap324|\ - cap4200ag|\ - cr3000|\ - cr5000) - platform_check_image_allnet "$1" && return 0 - return 1 - ;; - all0305|\ - eap300v2|\ - eap7660d|\ - ja76pf|\ - ja76pf2|\ - jwap003|\ - ls-sr71|\ - pb42|\ - pb44|\ - routerstation|\ - routerstation-pro|\ - 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=$(fwtool -q -t -i /dev/null "$1"; 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 - ;; - antminer-s1|\ - antminer-s3|\ - antrouter-r1|\ - archer-c5|\ - archer-c7|\ - el-m150|\ - el-mini|\ - gl-inet|\ - lan-turtle|\ - mc-mac1200r|\ - minibox-v1|\ - minibox-v3.2|\ - omy-g1|\ - omy-x1|\ - onion-omega|\ - oolite-v1|\ - oolite-v5.2|\ - oolite-v5.2-dev|\ - packet-squirrel|\ - re355|\ - re450|\ - rut900|\ - smart-300|\ - som9331|\ - tellstick-znet-lite|\ - 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-mr6400|\ - tl-wa701nd-v2|\ - tl-wa7210n-v2|\ - tl-wa750re|\ - tl-wa7510n|\ - tl-wa801nd-v2|\ - tl-wa801nd-v3|\ - tl-wa830re-v2|\ - tl-wa850re|\ - tl-wa850re-v2|\ - tl-wa855re-v1|\ - tl-wa860re|\ - tl-wa901nd|\ - tl-wa901nd-v2|\ - tl-wa901nd-v3|\ - tl-wa901nd-v4|\ - tl-wa901nd-v5|\ - tl-wdr3320-v2|\ - tl-wdr3500|\ - tl-wdr4300|\ - tl-wdr4900-v2|\ - tl-wdr6500-v2|\ - tl-wpa8630|\ - tl-wr1041n-v2|\ - tl-wr1043nd|\ - tl-wr1043nd-v2|\ - tl-wr1043nd-v4|\ - tl-wr2543n|\ - tl-wr703n|\ - tl-wr710n|\ - tl-wr720n-v3|\ - tl-wr740n-v6|\ - tl-wr741nd|\ - tl-wr741nd-v4|\ - tl-wr802n-v1|\ - tl-wr802n-v2|\ - tl-wr810n|\ - tl-wr810n-v2|\ - tl-wr840n-v2|\ - tl-wr840n-v3|\ - 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|\ - ts-d084|\ - wifi-pineapple-nano) - local magic_ver="0100" - - case "$board" in - tl-wdr3320-v2|tl-wdr6500-v2) - magic_ver="0200" - ;; - esac - - [ "$magic" != "$magic_ver" ] && { - echo "Invalid image type." - return 1 - } - - local hwid - local mid - local imagehwid - local imagemid - - hwid=$(tplink_get_hwid) - mid=$(tplink_get_mid) - imagehwid=$(tplink_get_image_hwid "$1") - imagemid=$(tplink_get_image_mid "$1") - - [ "$hwid" != "$imagehwid" -o "$mid" != "$imagemid" ] && { - echo "Invalid image, hardware ID mismatch, hw:$hwid $mid image:$imagehwid $imagemid." - 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 - ;; - bsb|\ - dir-825-b1|\ - tew-673gru) - dir825b_check_image "$1" && return 0 - ;; - 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-921gs-5hpacd-r2|\ - rb-922uags-5hpacd|\ - rb-951g-2hnd|\ - rb-951ui-2hnd|\ - rb-2011l|\ - rb-2011il|\ - rb-2011ils|\ - rb-2011uas|\ - rb-2011uas-2hnd|\ - rb-2011uias|\ - rb-2011uias-2hnd|\ - rb-2011uias-2hnd-r2|\ - rb-sxt2n|\ - rb-sxt5n) - nand_do_platform_check routerboard $1 - return $? - ;; - c-60|\ - hiveap-121|\ - nbg6716|\ - r6100|\ - rambutan|\ - wi2a-ac200i|\ - wndr3700v4|\ - wndr4300) - nand_do_platform_check $board $1 - return $? - ;; - cpe210|\ - cpe510|\ - eap120|\ - wbs210|\ - wbs510) - tplink_pharos_check_image "$1" "7f454c46" "$(tplink_pharos_get_model_string)" '' && return 0 - return 1 - ;; - cpe210-v2|\ - cpe210-v3) - tplink_pharos_check_image "$1" "01000000" "$(tplink_pharos_v2_get_model_string)" '\0\xff\r' && return 0 - return 1 - ;; - cpe510-v2) - tplink_pharos_check_image "$1" "7f454c46" "$(tplink_pharos_v2_get_model_string)" '\0\xff\r' && return 0 - return 1 - ;; - a40|\ - a60|\ - mr1750|\ - mr1750v2|\ - mr600|\ - mr600v2|\ - mr900|\ - mr900v2|\ - om2p|\ - om2p-hs|\ - om2p-hsv2|\ - om2p-hsv3|\ - om2p-hsv4|\ - om2p-lc|\ - om2pv2|\ - om2pv4|\ - om5p|\ - om5p-ac|\ - om5p-acv2|\ - om5p-an) - 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 - } - - return 0 - ;; - e2100l|\ - 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 - ;; - 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)" - [ "$magic_long" != "$hw_magic" ] && { - echo "Invalid image, hardware ID mismatch, hw:$hw_magic image:$magic_long." - return 1 - } - - return 0 - ;; - wnr2000-v4) - [ "$magic_long" != "32303034" ] && { - echo "Invalid image type." - return 1 - } - - return 0 - ;; - 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; - ;; - # 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-931-2nd|\ - rb-941-2nd|\ - rb-951ui-2nd|\ - rb-952ui-5ac2nd|\ - rb-962uigs-5hact2hnt|\ - rb-lhg-5nd|\ - rb-map-2nd|\ - rb-mapl-2nd|\ - rb-sxt-2nd-r3|\ - rb-wap-2nd|\ - rb-wapg-5hact2hnd|\ - rb-wapr-2nd) - return 0 - ;; - esac - - echo "Sysupgrade is not yet supported on $board." - return 1 -} - -platform_do_upgrade_mikrotik_rb() { - CI_KERNPART=none - local fw_mtd=$(find_mtd_part kernel) - fw_mtd="${fw_mtd/block/}" - [ -n "$fw_mtd" ] || return - - local board_dir=$(tar tf "$1" | grep -m 1 '^sysupgrade-.*/$') - board_dir=${board_dir%/} - [ -n "$board_dir" ] || return - - mtd erase kernel - tar xf "$1" ${board_dir}/kernel -O | nandwrite -o "$fw_mtd" - - - nand_do_upgrade "$1" -} - -platform_do_upgrade_nokia() { - 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 - - nand_do_upgrade "$1" -} - -platform_do_upgrade() { - local board=$(board_name) - - case "$board" in - rb-750-r2|\ - rb-750p-pbr2|\ - rb-750up-r2|\ - rb-911-2hn|\ - rb-911-5hn|\ - rb-931-2nd|\ - rb-941-2nd|\ - rb-951ui-2nd|\ - rb-952ui-5ac2nd|\ - rb-962uigs-5hact2hnt|\ - rb-lhg-5nd|\ - rb-map-2nd|\ - rb-mapl-2nd|\ - rb-sxt-2nd-r3|\ - rb-wap-2nd|\ - rb-wapg-5hact2hnd|\ - rb-wapr-2nd) - # erase firmware if booted from initramfs - [ -z "$(rootfs_type)" ] && mtd erase firmware - ;; - esac - - case "$board" in - all0258n) - platform_do_upgrade_allnet "0x9f050000" "$1" - ;; - all0305|\ - eap7660d|\ - ja76pf|\ - ja76pf2|\ - jwap003|\ - ls-sr71|\ - pb42|\ - pb44|\ - routerstation|\ - routerstation-pro) - platform_do_upgrade_combined "$1" - ;; - all0315n) - platform_do_upgrade_allnet "0x9f080000" "$1" - ;; - cap4200ag|\ - eap300v2|\ - ens202ext) - platform_do_upgrade_allnet "0xbf0a0000" "$1" - ;; - dir-825-b1|\ - tew-673gru) - platform_do_upgrade_dir825b "$1" - ;; - a40|\ - a60|\ - mr1750|\ - mr1750v2|\ - mr600|\ - mr600v2|\ - mr900|\ - mr900v2|\ - om2p|\ - om2p-hs|\ - om2p-hsv2|\ - om2p-hsv3|\ - om2p-hsv4|\ - om2p-lc|\ - om2pv2|\ - om2pv4|\ - om5p|\ - om5p-ac|\ - om5p-acv2|\ - om5p-an) - platform_do_upgrade_openmesh "$1" - ;; - c-60|\ - hiveap-121|\ - nbg6716|\ - r6100|\ - rambutan|\ - wndr3700v4|\ - wndr4300) - nand_do_upgrade "$1" - ;; - mr18|\ - z1) - merakinand_do_upgrade "$1" - ;; - 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-922uags-5hpacd|\ - rb-951g-2hnd|\ - rb-951ui-2hnd|\ - rb-2011il|\ - rb-2011ils|\ - rb-2011l|\ - rb-2011uas|\ - rb-2011uas-2hnd|\ - rb-2011uias|\ - rb-2011uias-2hnd|\ - rb-2011uias-2hnd-r2|\ - rb-sxt2n|\ - rb-sxt5n) - platform_do_upgrade_mikrotik_rb "$1" - ;; - uap-pro|\ - unifi-outdoor-plus) - MTD_CONFIG_ARGS="-s 0x180000" - default_do_upgrade "$1" - ;; - wi2a-ac200i) - platform_do_upgrade_nokia "$1" - ;; - wp543|\ - wpe72) - platform_do_upgrade_compex "$1" - ;; - *) - default_do_upgrade "$1" - ;; - esac -} |