aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/base-files/lib
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ar71xx/base-files/lib')
-rwxr-xr-xtarget/linux/ar71xx/base-files/lib/ar71xx.sh1589
-rw-r--r--target/linux/ar71xx/base-files/lib/preinit/01_preinit_do_ar71xx.sh9
-rw-r--r--target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx60
-rw-r--r--target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx57
-rw-r--r--target/linux/ar71xx/base-files/lib/preinit/82_patch_ath10k50
-rw-r--r--target/linux/ar71xx/base-files/lib/upgrade/allnet.sh155
-rw-r--r--target/linux/ar71xx/base-files/lib/upgrade/dir825.sh165
-rw-r--r--target/linux/ar71xx/base-files/lib/upgrade/merakinand.sh165
-rw-r--r--target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh232
-rwxr-xr-xtarget/linux/ar71xx/base-files/lib/upgrade/platform.sh915
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
-}