openwrtv4/target/linux/ar71xx/base-files/lib/ar71xx.sh

1315 lines
20 KiB
Bash
Raw Normal View History

#!/bin/sh
#
# Copyright (C) 2009-2011 OpenWrt.org
#
AR71XX_BOARD_NAME=
AR71XX_MODEL=
ar71xx_get_mtd_offset_size_format() {
local mtd="$1"
local offset="$2"
local size="$3"
local format="$4"
local dev
dev=$(find_mtd_part $mtd)
[ -z "$dev" ] && return
dd if=$dev bs=1 skip=$offset count=$size 2>/dev/null | hexdump -v -e "1/1 \"$format\""
}
ar71xx_get_mtd_part_magic() {
local mtd="$1"
ar71xx_get_mtd_offset_size_format "$mtd" 0 4 %02x
}
wndr3700_board_detect() {
local machine="$1"
local magic
local name
name="wndr3700"
magic="$(ar71xx_get_mtd_part_magic firmware)"
case $magic in
"33373030")
machine="NETGEAR WNDR3700"
;;
"33373031")
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}"
}
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'
;;
"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"
;;
"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"
;;
"3C0001"*)
model="OOLITE"
;;
"3C0002"*)
model="MINIBOX_V1"
;;
"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"
;;
"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="$(tplink_pharos_get_model_string | tr -d '\r')"
local oIFS="$IFS"; IFS=":"; set -- $model_string; IFS="$oIFS"
local model="${1%%\(*}"
AR71XX_MODEL="TP-Link $model v$2"
}
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"
;;
*"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"
;;
*"Archer C5")
name="archer-c5"
;;
ar71xx: add support to TP-Link Archer C59v1 and C60v1 TP-Link Archer C59v1 is a dual-band AC1350 router, based on Qualcomm/Atheros QCA9561+QCA9886. Specification: - 775/650/258 MHz (CPU/DDR/AHB) - 128 MB of RAM (DDR2) - 16 MB of FLASH (SPI NOR) - 3T3R 2.4 GHz - 2T2R 5 GHz - 5x 10/100 Mbps Ethernet - USB 2.0 port - 8x LED (controled by 74HC595), 3x button - UART header on PCB TP-Link Archer C60v1 is a dual-band AC1350 router, based on Qualcomm/Atheros QCA9561+QCA9886. Specification: - 775/650/258 MHz (CPU/DDR/AHB) - 64 MB of RAM (DDR2) - 8 MB of FLASH (SPI NOR) - 3T3R 2.4 GHz - 2T2R 5 GHz - 5x 10/100 Mbps Ethernet - 7x LED, 2x button - UART header on PCB Currently not working: - Port LAN1 on C59, LAN4 on C60 - WiFi 5GHz (missing ath10k firmware for QCA9886 chip) - Update from oficial web interface ( tplink-saveloader not support "product-info") Flash instruction: 1. Set PC to fixed ip address 192.168.0.66 2. Download lede-ar71xx-generic-archer-cXX-v1-squashfs-factory.bin and rename it to tp_recovery.bin 3. Start a tftp server with the file tp_recovery.bin in its root directory 4. Turn off the router 5. Press and hold Reset button 6. Turn on router with the reset button pressed and wait ~15 seconds 7. Release the reset button and after a short time the firmware should be transferred from the tftp server 8. Wait ~30 second to complete recovery. Flash instruction under U-Boot, using UART: 1. tftp 0x81000000 lede-ar71xx-...-sysupgrade.bin 2. erase 0x9f020000 +$filesize 3. cp.b $fileaddr 0x9f020000 $filesize 4. reset Signed-off-by: Henryk Heisig <hyniu@o2.pl> [Jo-Philipp Wich: remove duplicate ATH79_MACH_ARCHER_C59/C60_V1 entries] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-12-27 21:41:41 +00:00
*"Archer C59 v1")
name="archer-c59-v1"
;;
*"Archer C60 v1")
name="archer-c60-v1"
;;
*"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
;;
*"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-E380AC v1")
name="cf-e380ac-v1"
;;
*"CF-E380AC v2")
name="cf-e380ac-v2"
;;
*"CF-E520N")
name="cf-e520n"
;;
*"CF-E530N")
name="cf-e530n"
;;
*"CPE210/220")
name="cpe210"
tplink_pharos_board_detect
;;
ar71xx: add support for P&W R602N and CPE505N P&W (full name: Shenzhen Progress&Win Technologies) R602N (could be also labeled as R602F, R602, etc.) is a simple N300 router with 5-port 10/100 Mbps switch, non-detachable antennas and USB. CPE505 is an outdoor CPE with PoE support and detachable antennas. Both devices are based on Qualcomm/Atheros QCA9531 v2. Common specification: - 650/597/216 MHz (CPU/DDR/AHB) - 64 MB of RAM (DDR2) - 16 MB of FLASH - UART (J2) header on PCB R602N specification: - 5x 10/100 Mbps Ethernet - 1x USB 2.0 - 2T2R 2.4 GHz with external LNA and PA (SE2576L), up to 28 dBm - 2x external, non-detachable antennas - 7x LED, 1x button CPE505N specification: - 2x 10/100 Mbps Ethernet (both ports support passive PoE 12-24 V) - 2T2R 2.4 GHz with external LNA and PA (SKY65174-21), up to 30 dBm - 2x external, detachable antennas (RP-SMA connectors) - 1x RGB LED, 2x LEDs (in RJ45 sockets), 1x button Flash instructions: It seems that there are many different versions of the firmware which these devices are shipped with. The generic/standard one is based on some modified OpenWrt and LEDE firmware can be flashed directly from vendor's webgui or with sysupgrade (root password is "admin123"). Before flashing, make sure (use "fw_printenv") that the kernel load address in your device is set to "0x9f050000" (bootcmd variable is "bootm 0x9f050000"). If your device uses different load address, you should first change it, under vendor's firmware, with command: fw_setenv bootcmd "bootm 0x9f050000 || bootm OLD_ADDRESS" Where OLD_ADDRESS is previous kernel load address (in CPE505 version I got access to, it was "0x9fe80000"). This will allow you to use both the vendor's and LEDE firmware. If version of your device contains empty U-Boot environment (you will get information about this after issuing "fw_printenv"), you should use U-Boot, serial line access and TFTP to perform firmware upgrade: 1. tftp 0x80060000 lede-ar71xx-generic-...-squashfs-sysupgrade.bin 2. erase 0x9f050000 +$filesize 3. cp.b $fileaddr 0x9f050000 $filesize 4. setenv bootcmd "bootm 0x9f050000 || bootm OLD_ADDRESS" 5. saveenv && reset These devices contain also web recovery mode inside U-Boot. It can be started with pressing the reset button for around 3 seconds just after the device powerup. Web recovery panel is available on "192.168.10.9" and to be able to use it, IP on your PC must be set to "192.168.10.10". Make sure to change kernel load address before using recovery mode or the U-Boot will not be able to load LEDE firmware. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2017-03-15 23:54:08 +00:00
*"CPE505N")
name="cpe505n"
;;
*"CPE510/520")
name="cpe510"
tplink_pharos_board_detect
;;
*"CPE830")
name="cpe830"
;;
*"CPE870")
name="cpe870"
;;
*"CR3000")
name="cr3000"
;;
*"CR5000")
name="cr5000"
;;
*"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"
;;
*"DR344")
name="dr344"
;;
*"DR531")
name="dr531"
;;
*"Dragino v2")
name="dragino2"
;;
*"DW33D")
name="dw33d"
;;
*"E2100L")
name="e2100l"
;;
*"EAP120")
name="eap120"
tplink_pharos_board_detect
;;
*"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-Dorin")
name="ew-dorin"
;;
*"EmbWir-Dorin-Router")
name="ew-dorin-router"
;;
*"EPG5000")
name="epg5000"
;;
*"ESR1750")
name="esr1750"
;;
*"ESR900")
name="esr900"
;;
*"GL AR150")
name="gl-ar150"
;;
*"GL AR300")
name="gl-ar300"
;;
*"GL-AR300M")
name="gl-ar300m"
;;
*"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"
;;
*"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"
;;
*"Lima"*)
name="lima"
;;
*"Loco M XW")
name="loco-m-xw"
;;
*"LS-SR71")
name="ls-sr71"
;;
*"MAC1200R")
name="mc-mac1200r"
;;
*"MiniBox V1.0")
name="minibox-v1"
;;
*"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"
;;
*"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"
;;
*"PB42")
name="pb42"
;;
*"PB44 reference board")
name="pb44"
;;
*"PQI Air Pen")
name="pqi-air-pen"
;;
*"Qihoo 360 C301")
name="qihoo-c301"
;;
ar71xx: add support for P&W R602N and CPE505N P&W (full name: Shenzhen Progress&Win Technologies) R602N (could be also labeled as R602F, R602, etc.) is a simple N300 router with 5-port 10/100 Mbps switch, non-detachable antennas and USB. CPE505 is an outdoor CPE with PoE support and detachable antennas. Both devices are based on Qualcomm/Atheros QCA9531 v2. Common specification: - 650/597/216 MHz (CPU/DDR/AHB) - 64 MB of RAM (DDR2) - 16 MB of FLASH - UART (J2) header on PCB R602N specification: - 5x 10/100 Mbps Ethernet - 1x USB 2.0 - 2T2R 2.4 GHz with external LNA and PA (SE2576L), up to 28 dBm - 2x external, non-detachable antennas - 7x LED, 1x button CPE505N specification: - 2x 10/100 Mbps Ethernet (both ports support passive PoE 12-24 V) - 2T2R 2.4 GHz with external LNA and PA (SKY65174-21), up to 30 dBm - 2x external, detachable antennas (RP-SMA connectors) - 1x RGB LED, 2x LEDs (in RJ45 sockets), 1x button Flash instructions: It seems that there are many different versions of the firmware which these devices are shipped with. The generic/standard one is based on some modified OpenWrt and LEDE firmware can be flashed directly from vendor's webgui or with sysupgrade (root password is "admin123"). Before flashing, make sure (use "fw_printenv") that the kernel load address in your device is set to "0x9f050000" (bootcmd variable is "bootm 0x9f050000"). If your device uses different load address, you should first change it, under vendor's firmware, with command: fw_setenv bootcmd "bootm 0x9f050000 || bootm OLD_ADDRESS" Where OLD_ADDRESS is previous kernel load address (in CPE505 version I got access to, it was "0x9fe80000"). This will allow you to use both the vendor's and LEDE firmware. If version of your device contains empty U-Boot environment (you will get information about this after issuing "fw_printenv"), you should use U-Boot, serial line access and TFTP to perform firmware upgrade: 1. tftp 0x80060000 lede-ar71xx-generic-...-squashfs-sysupgrade.bin 2. erase 0x9f050000 +$filesize 3. cp.b $fileaddr 0x9f050000 $filesize 4. setenv bootcmd "bootm 0x9f050000 || bootm OLD_ADDRESS" 5. saveenv && reset These devices contain also web recovery mode inside U-Boot. It can be started with pressing the reset button for around 3 seconds just after the device powerup. Web recovery panel is available on "192.168.10.9" and to be able to use it, IP on your PC must be set to "192.168.10.10". Make sure to change kernel load address before using recovery mode or the U-Boot will not be able to load LEDE firmware. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2017-03-15 23:54:08 +00:00
*"R602N")
name="r602n"
;;
*"R6100")
name="r6100"
;;
*"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"
;;
*"RouterBOARD 2011iL")
name="rb-2011il"
;;
*"RouterBOARD 2011L")
name="rb-2011l"
;;
*"RouterBOARD 2011UAS")
name="rb-2011uas"
;;
*"RouterBOARD 2011UAS-2HnD")
name="rb-2011uas-2hnd"
;;
*"RouterBOARD 2011UiAS")
name="rb-2011uias"
;;
*"RouterBOARD 2011UiAS-2HnD")
name="rb-2011uias-2hnd"
;;
*"RouterBOARD 411/A/AH")
name="rb-411"
;;
*"RouterBOARD 411U")
name="rb-411u"
;;
*"RouterBOARD 433/AH")
name="rb-433"
;;
*"RouterBOARD 433UAH")
name="rb-433u"
;;
*"RouterBOARD 435G")
name="rb-435g"
;;
*"RouterBOARD 450")
name="rb-450"
;;
*"RouterBOARD 450G")
name="rb-450g"
;;
*"RouterBOARD 493/AH")
name="rb-493"
;;
*"RouterBOARD 493G")
name="rb-493g"
;;
*"RouterBOARD 750")
name="rb-750"
;;
*"RouterBOARD 750 r2")
name="rb-750-r2"
;;
*"RouterBOARD 750GL")
name="rb-750gl"
;;
*"RouterBOARD 750UP r2")
name="rb-750up-r2"
;;
*"RouterBOARD 751")
name="rb-751"
;;
*"RouterBOARD 751G")
name="rb-751g"
;;
*"RouterBOARD 911G-2HPnD")
name="rb-911g-2hpnd"
;;
*"RouterBOARD 911G-5HPacD")
name="rb-911g-5hpacd"
;;
*"RouterBOARD 911G-5HPnD")
name="rb-911g-5hpnd"
;;
*"RouterBOARD 912UAG-2HPnD")
name="rb-912uag-2hpnd"
;;
*"RouterBOARD 912UAG-5HPnD")
name="rb-912uag-5hpnd"
;;
*"RouterBOARD 941-2nD")
name="rb-941-2nd"
;;
*"RouterBOARD 951G-2HnD")
name="rb-951g-2hnd"
;;
*"RouterBOARD 951Ui-2HnD")
name="rb-951ui-2hnd"
;;
*"RouterBOARD 951Ui-2nD")
name="rb-951ui-2nd"
;;
*"RouterBOARD 952Ui-5ac2nD")
name="rb-952ui-5ac2nd"
;;
*"RouterBOARD 962UiGS-5HacT2HnT")
name="rb-962uigs-5hact2hnt"
;;
*"RouterBOARD LHG 5nD")
name="rb-lhg-5nd"
;;
*"RouterBOARD mAP L-2nD")
name="rb-mapl-2nd"
;;
*"RouterBOARD SXT Lite2")
name="rb-sxt2n"
;;
*"RouterBOARD SXT Lite5")
name="rb-sxt5n"
;;
*"RouterStation")
name="routerstation"
;;
*"RouterStation Pro")
name="routerstation-pro"
;;
*"RW2458N")
name="rw2458n"
;;
*"SC1750")
name="sc1750"
;;
*"SC300M")
name="sc300m"
;;
*"SC450")
name="sc450"
;;
*"SMART-300")
name="smart-300"
;;
*"SOM9331")
name="som9331"
;;
*"SR3200")
ar71xx: add support for YunCore SR3200 and XD3200 YunCore SR3200 is a dual-band AC1200 router, based on Qualcomm/Atheros QCA9563+QCA9882+QCA8337N. YunCore XD3200 (FCC ID: 2ADUG-XD3200) is a dual-band AC1200 ceiling mount AP with PoE support, based on Qualcomm/Atheros QCA9563+QCA9882+QCA8334. Common specification: - 775/650/258 MHz (CPU/DDR/AHB) - 128 MB or RAM (DDR2) - 16 MB of FLASH (SPI NOR) - 2T2R 2.4 GHz, with ext. PA (SKY65174-21), up to 30 dBm - 2T2R 5 GHz, with ext. PA (SKY85405-11) and LNA (SKY85601-11), up to 30 dBm SR3200 specification: - 5x 10/100/1000 Mbps Ethernet - 6x ext. RP-SMA antennas (actually, only 4 are connected with radio chips) - 3x LED (+ 5x LED in RJ45 sockets), 1x button - UART header on PCB XD3200 specification: - 2x 10/100/1000 Mbps Ethernet, with 802.3at PoE support (WAN port) - 4x internal antennas - 3 sets of LEDs on external PCB (+ 2x LED near RJ45 sockets), 1x button - UART and JTAG (custom 6-pin, 2 mm pitch) headers on PCB LED for 5 GHz WLAN is currently not supported on both devices as it is connected directly to the QCA9882 radio chip. Flash instruction under vendor firmware, using telnet/SSH: 1. If your firmware does not have root password, go to point 5 2. Connect PC with 192.168.1.x address to LAN or WAN port 3. Power up device, enter failsafe mode with button (no LED indicator!) 4. Change root password and reboot (mount_root, passwd ..., reboot -f) 5. Upload lede-ar71xx-...-sysupgrade.bin to /tmp using SCP 6. Connect PC with 192.168.188.x address to LAN port, SSH to 192.168.188.253 7. Invoke: - cd /tmp - fw_setenv bootcmd "bootm 0x9fe80000 || bootm 0x9f050000" - mtd -e firmware -r write lede-ar71xx-...-sysupgrade.bin firmware Flash instruction under U-Boot, using UART: 1. tftp 0x80060000 lede-ar71xx-...-sysupgrade.bin 2. erase 0x9f050000 +$filesize 3. cp.b $fileaddr 0x9f050000 $filesize 4. setenv bootcmd "bootm 0x9fe80000 || bootm 0x9f050000" 5. saveenv && reset Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2016-12-02 21:42:41 +00:00
name="sr3200"
;;
*"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-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-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-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-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-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-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-WR940N v4")
name="tl-wr940n-v4"
;;
*"TL-WR941N/ND v5")
name="tl-wr941nd-v5"
;;
*"TL-WR941N/ND v6")
name="tl-wr941nd-v6"
;;
*"TL-WR941ND")
name="tl-wr941nd"
;;
*"Tube2H")
name="tube2h"
;;
*"UniFi")
name="unifi"
;;
*"UniFi AP Pro")
name="uap-pro"
;;
*"UniFi-AC-LITE")
name="unifiac-lite"
;;
*"UniFi-AC-PRO")
name="unifiac-pro"
;;
*"UniFiAP Outdoor")
name="unifi-outdoor"
;;
*"UniFiAP Outdoor+")
name="unifi-outdoor-plus"
;;
*"WBS210")
name="wbs210"
tplink_pharos_board_detect
;;
*"WBS510")
name="wbs510"
tplink_pharos_board_detect
;;
"WeIO"*)
name="weio"
;;
*"WHR-G301N")
name="whr-g301n"
;;
*"WHR-HP-G300N")
name="whr-hp-g300n"
;;
*"WHR-HP-GN")
name="whr-hp-gn"
;;
*"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")
ar71xx: add support for YunCore SR3200 and XD3200 YunCore SR3200 is a dual-band AC1200 router, based on Qualcomm/Atheros QCA9563+QCA9882+QCA8337N. YunCore XD3200 (FCC ID: 2ADUG-XD3200) is a dual-band AC1200 ceiling mount AP with PoE support, based on Qualcomm/Atheros QCA9563+QCA9882+QCA8334. Common specification: - 775/650/258 MHz (CPU/DDR/AHB) - 128 MB or RAM (DDR2) - 16 MB of FLASH (SPI NOR) - 2T2R 2.4 GHz, with ext. PA (SKY65174-21), up to 30 dBm - 2T2R 5 GHz, with ext. PA (SKY85405-11) and LNA (SKY85601-11), up to 30 dBm SR3200 specification: - 5x 10/100/1000 Mbps Ethernet - 6x ext. RP-SMA antennas (actually, only 4 are connected with radio chips) - 3x LED (+ 5x LED in RJ45 sockets), 1x button - UART header on PCB XD3200 specification: - 2x 10/100/1000 Mbps Ethernet, with 802.3at PoE support (WAN port) - 4x internal antennas - 3 sets of LEDs on external PCB (+ 2x LED near RJ45 sockets), 1x button - UART and JTAG (custom 6-pin, 2 mm pitch) headers on PCB LED for 5 GHz WLAN is currently not supported on both devices as it is connected directly to the QCA9882 radio chip. Flash instruction under vendor firmware, using telnet/SSH: 1. If your firmware does not have root password, go to point 5 2. Connect PC with 192.168.1.x address to LAN or WAN port 3. Power up device, enter failsafe mode with button (no LED indicator!) 4. Change root password and reboot (mount_root, passwd ..., reboot -f) 5. Upload lede-ar71xx-...-sysupgrade.bin to /tmp using SCP 6. Connect PC with 192.168.188.x address to LAN port, SSH to 192.168.188.253 7. Invoke: - cd /tmp - fw_setenv bootcmd "bootm 0x9fe80000 || bootm 0x9f050000" - mtd -e firmware -r write lede-ar71xx-...-sysupgrade.bin firmware Flash instruction under U-Boot, using UART: 1. tftp 0x80060000 lede-ar71xx-...-sysupgrade.bin 2. erase 0x9f050000 +$filesize 3. cp.b $fileaddr 0x9f050000 $filesize 4. setenv bootcmd "bootm 0x9fe80000 || bootm 0x9f050000" 5. saveenv && reset Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2016-12-02 21:42:41 +00:00
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
}
ar71xx_board_name() {
local name
[ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
[ -z "$name" ] && name="unknown"
echo "$name"
}