2010-04-11 17:47:25 +00:00
|
|
|
#
|
|
|
|
# Copyright (C) 2010 OpenWrt.org
|
|
|
|
#
|
|
|
|
|
|
|
|
PART_NAME=firmware
|
|
|
|
|
|
|
|
platform_check_image() {
|
2017-05-12 20:36:07 +00:00
|
|
|
local board=$(board_name)
|
2012-10-18 07:23:00 +00:00
|
|
|
local magic="$(get_magic_long "$1")"
|
2010-04-11 17:47:25 +00:00
|
|
|
|
2014-06-02 12:43:22 +00:00
|
|
|
[ "$#" -gt 1 ] && return 1
|
2010-04-11 17:47:25 +00:00
|
|
|
|
|
|
|
case "$board" in
|
2015-08-17 06:01:49 +00:00
|
|
|
3g150b|\
|
|
|
|
3g300m|\
|
|
|
|
a5-v11|\
|
|
|
|
ai-br100|\
|
|
|
|
air3gii|\
|
|
|
|
all0239-3g|\
|
2017-04-07 22:34:48 +00:00
|
|
|
all0256n-4M|\
|
|
|
|
all0256n-8M|\
|
2015-08-17 06:01:49 +00:00
|
|
|
all5002|\
|
|
|
|
all5003|\
|
|
|
|
ar725w|\
|
2017-04-07 22:34:48 +00:00
|
|
|
asl26555-8M|\
|
|
|
|
asl26555-16M|\
|
2015-08-17 06:01:49 +00:00
|
|
|
awapn2403|\
|
2017-04-07 22:34:48 +00:00
|
|
|
awm002-evb-4M|\
|
|
|
|
awm002-evb-8M|\
|
2015-08-17 06:01:49 +00:00
|
|
|
bc2|\
|
|
|
|
broadway|\
|
2017-09-06 09:14:16 +00:00
|
|
|
c108|\
|
2015-08-17 06:01:49 +00:00
|
|
|
carambola|\
|
|
|
|
cf-wr800n|\
|
2016-04-26 11:43:01 +00:00
|
|
|
cs-qr10|\
|
2015-08-17 06:01:49 +00:00
|
|
|
d105|\
|
2017-02-04 20:28:52 +00:00
|
|
|
d240|\
|
2015-08-17 06:01:49 +00:00
|
|
|
dap-1350|\
|
2015-09-14 20:08:55 +00:00
|
|
|
db-wrt01|\
|
2015-08-17 06:01:49 +00:00
|
|
|
dcs-930|\
|
|
|
|
dcs-930l-b1|\
|
|
|
|
dir-300-b1|\
|
|
|
|
dir-300-b7|\
|
|
|
|
dir-320-b1|\
|
|
|
|
dir-600-b1|\
|
|
|
|
dir-615-d|\
|
|
|
|
dir-615-h1|\
|
|
|
|
dir-620-a1|\
|
|
|
|
dir-620-d1|\
|
|
|
|
dir-810l|\
|
2016-05-28 14:22:10 +00:00
|
|
|
duzun-dm06|\
|
2016-11-13 22:36:00 +00:00
|
|
|
dwr-512-b|\
|
2015-08-17 06:01:49 +00:00
|
|
|
e1700|\
|
|
|
|
esr-9753|\
|
2017-02-27 20:59:50 +00:00
|
|
|
ew1200|\
|
2016-02-12 08:29:33 +00:00
|
|
|
ex2700|\
|
2017-03-03 14:36:51 +00:00
|
|
|
ex3700|\
|
2015-08-17 06:01:49 +00:00
|
|
|
f7c027|\
|
|
|
|
firewrt|\
|
|
|
|
fonera20n|\
|
|
|
|
freestation5|\
|
2017-07-22 01:15:56 +00:00
|
|
|
gb-pc1|\
|
2016-03-10 19:11:57 +00:00
|
|
|
gl-mt300a|\
|
2016-03-10 19:12:04 +00:00
|
|
|
gl-mt300n|\
|
2016-03-10 19:12:10 +00:00
|
|
|
gl-mt750|\
|
2017-05-17 10:18:45 +00:00
|
|
|
gl-mt300n-v2|\
|
2015-10-05 10:25:47 +00:00
|
|
|
hc5*61|\
|
2017-02-24 23:19:15 +00:00
|
|
|
hc5661a|\
|
2015-08-17 06:01:49 +00:00
|
|
|
hg255d|\
|
|
|
|
hlk-rm04|\
|
|
|
|
hpm|\
|
|
|
|
ht-tm02|\
|
|
|
|
hw550-3g|\
|
|
|
|
ip2202|\
|
2016-03-04 08:33:09 +00:00
|
|
|
jhr-n805r|\
|
|
|
|
jhr-n825r|\
|
|
|
|
jhr-n926r|\
|
2017-07-18 05:02:51 +00:00
|
|
|
k2p|\
|
2017-04-27 18:02:05 +00:00
|
|
|
kn|\
|
2016-11-28 18:41:51 +00:00
|
|
|
kn_rc|\
|
|
|
|
kn_rf|\
|
2016-10-29 12:26:58 +00:00
|
|
|
kng_rc|\
|
2015-10-19 10:07:38 +00:00
|
|
|
linkits7688|\
|
|
|
|
linkits7688d|\
|
2015-08-17 06:01:49 +00:00
|
|
|
m2m|\
|
|
|
|
m3|\
|
2017-04-07 22:34:48 +00:00
|
|
|
m4-4M|\
|
|
|
|
m4-8M|\
|
2016-09-08 22:57:31 +00:00
|
|
|
mac1200rv2|\
|
2015-08-17 06:01:49 +00:00
|
|
|
microwrt|\
|
|
|
|
miniembplug|\
|
|
|
|
miniembwifi|\
|
|
|
|
miwifi-mini|\
|
2016-03-16 09:26:48 +00:00
|
|
|
miwifi-nano|\
|
2015-08-17 06:01:49 +00:00
|
|
|
mlw221|\
|
|
|
|
mlwg2|\
|
|
|
|
mofi3500-3gn|\
|
|
|
|
mpr-a1|\
|
|
|
|
mpr-a2|\
|
|
|
|
mr-102n|\
|
2016-02-28 15:46:27 +00:00
|
|
|
mt7628|\
|
2016-04-20 17:19:05 +00:00
|
|
|
mzk-750dhp|\
|
2015-08-17 06:01:49 +00:00
|
|
|
mzk-dp150n|\
|
2016-04-26 11:43:06 +00:00
|
|
|
mzk-ex300np|\
|
2016-04-29 11:34:56 +00:00
|
|
|
mzk-ex750np|\
|
2015-08-17 06:01:49 +00:00
|
|
|
mzk-w300nh2|\
|
2016-03-08 18:11:59 +00:00
|
|
|
mzk-wdpr|\
|
2015-08-17 06:01:49 +00:00
|
|
|
nbg-419n|\
|
2016-07-24 15:37:52 +00:00
|
|
|
nbg-419n2|\
|
2016-09-27 06:25:04 +00:00
|
|
|
newifi-d1|\
|
2017-04-07 22:34:48 +00:00
|
|
|
nixcore-x1-8M|\
|
|
|
|
nixcore-x1-16M|\
|
2015-08-17 06:01:49 +00:00
|
|
|
nw718|\
|
2017-01-09 19:59:56 +00:00
|
|
|
omega2|\
|
|
|
|
omega2p|\
|
2015-08-17 06:01:49 +00:00
|
|
|
oy-0001|\
|
2016-09-27 06:23:27 +00:00
|
|
|
pbr-d1|\
|
2015-08-17 06:01:49 +00:00
|
|
|
pbr-m1|\
|
2016-02-15 18:45:22 +00:00
|
|
|
psg1208|\
|
2017-04-21 00:47:44 +00:00
|
|
|
psg1218a|\
|
|
|
|
psg1218b|\
|
2015-08-17 06:01:49 +00:00
|
|
|
psr-680w|\
|
2017-04-07 22:34:48 +00:00
|
|
|
px-4885-4M|\
|
|
|
|
px-4885-8M|\
|
ramips: add support for MikroTik hEX v3 (RB750Gr3)
The MikroTik hEX v3 (RB750Gr3) is a MT7621AT board which is similar to most MT7621 reference designs, it can be easily supported by this patch; however, the stock RouterBOOT bootloader has to be replaced by a MT7621 SDK U-Boot such as https://github.com/ndoo/RB750Gr3-U-Boot - U-Boot configured for the RB750Gr3 (16MiB SPI flash, 256MiB DDR3 RAM at 1200MHz).
RouterBOOT, the stock bootloader, does not initialize the UART and boots silently, making it preferable to replace it with a MT7621 SDK U-Boot with UART (57600 8N1) that supports HTTP, TFTP or serial upload of sysupgrade firmware and U-Boot.
Furthermore, RouterOS, the stock firmware, is contained in a proprietary modification of SquashFS without GPL sources; UART is also disabled in stock firmware.
The combination of LEDE firmware generated by this PR and MT7621 SDK U-Boot expects the printed MAC address to reside at offset `0xe000` of the factory partition (absolute offset is `0x4e000`); this is similar to the factory MAC address offset for several other MT7621 devices.
A 16MiB flash dump suitable for use with flashrom will be provided if/once this patch is accepted and binaries are built by LEDE buildbot. Alternatively, writing the U-Boot to the SPI flash starting at 0x0 offset and booting the board with serial console attached will allow TFTP, HTTP or serial upload of sysupgrade firmware.
Signed-off-by: Andrew Yong <me@ndoo.sg>
2016-10-18 20:05:32 +00:00
|
|
|
rb750gr3|\
|
2015-08-17 06:01:49 +00:00
|
|
|
re6500|\
|
|
|
|
rp-n53|\
|
|
|
|
rt5350f-olinuxino|\
|
|
|
|
rt5350f-olinuxino-evb|\
|
2017-05-05 15:54:26 +00:00
|
|
|
rt-ac51u|\
|
2015-08-17 06:01:49 +00:00
|
|
|
rt-g32-b1|\
|
|
|
|
rt-n10-plus|\
|
|
|
|
rt-n13u|\
|
|
|
|
rt-n14u|\
|
|
|
|
rt-n15|\
|
|
|
|
rt-n56u|\
|
|
|
|
rut5xx|\
|
|
|
|
sap-g3200u3|\
|
2016-05-10 16:17:54 +00:00
|
|
|
sk-wb8|\
|
2015-08-17 06:01:49 +00:00
|
|
|
sl-r7205|\
|
2017-06-09 11:02:56 +00:00
|
|
|
tew-638apb-v2|\
|
2015-08-17 06:01:49 +00:00
|
|
|
tew-691gr|\
|
|
|
|
tew-692gr|\
|
2016-08-03 17:58:01 +00:00
|
|
|
tew-714tru|\
|
2016-08-10 00:18:32 +00:00
|
|
|
timecloud|\
|
2015-11-02 10:17:51 +00:00
|
|
|
tiny-ac|\
|
2017-02-19 08:46:44 +00:00
|
|
|
u25awf-h1|\
|
2015-08-17 06:01:49 +00:00
|
|
|
ur-326n4g|\
|
|
|
|
ur-336un|\
|
|
|
|
v22rw-2x2|\
|
2017-04-07 22:34:48 +00:00
|
|
|
vocore-8M|\
|
|
|
|
vocore-16M|\
|
2017-01-08 06:30:10 +00:00
|
|
|
vocore2|\
|
2017-08-03 20:09:06 +00:00
|
|
|
vocore2lite|\
|
2016-10-10 01:24:42 +00:00
|
|
|
vr500|\
|
2015-08-17 06:01:49 +00:00
|
|
|
w150m|\
|
2016-11-18 11:46:27 +00:00
|
|
|
w2914nsv2|\
|
2015-08-17 06:01:49 +00:00
|
|
|
w306r-v20|\
|
|
|
|
w502u|\
|
2015-11-24 18:29:26 +00:00
|
|
|
wf-2881|\
|
2015-08-17 06:01:49 +00:00
|
|
|
whr-1166d|\
|
|
|
|
whr-300hp2|\
|
|
|
|
whr-600d|\
|
|
|
|
whr-g300n|\
|
2016-05-28 10:04:17 +00:00
|
|
|
widora-neo|\
|
2015-12-11 15:04:13 +00:00
|
|
|
witi|\
|
2015-09-14 20:09:31 +00:00
|
|
|
wizfi630a|\
|
2015-08-17 06:01:49 +00:00
|
|
|
wl-330n|\
|
|
|
|
wl-330n3g|\
|
|
|
|
wl-341v3|\
|
|
|
|
wl-351|\
|
2016-11-06 12:00:38 +00:00
|
|
|
wl-wn575a3|\
|
2015-08-17 06:01:49 +00:00
|
|
|
wli-tx4-ag300n|\
|
2016-08-14 21:30:44 +00:00
|
|
|
wlr-6000|\
|
ramips: add support for Loewe WMDR-143N
The WMDR-143N is a small module originally used as a Wifi client
in some Loewe smart TV sets. It is sold cheaply at german surplus
shops. The module contains a RT3662 SOC.
Specifications:
- 500 MHz CPU Clock
- 1x 10/100Mbps Ethernet (pin header)
- 32 MB of RAM
- 8 MB of FLASH
- 2T3R 2.4/5 GHz (SOC internal)
- 3 Antennas on PCB
- UART pads on PCB (J3: 1 = +3.3V, 2 = RX, 3 = TX, 4 = GND), TX
and RX are 3,3V only! The square hole is pin 1
- Power supply pads on PCB (J6: 1 and 2 = +5V, 3 and 4 = GND)
The square hole is pin 1
The original firmware has two identical kernel/rootfs images and
two "Factory" calibration data blocks in flash. The LEDE image
leaves only the first "Factory" block in place and uses both
"Kernel" blocks and the redundant "Factory" block together to gain
enough space for the jffs2 partition.
Flash instructions:
You need UART and Ethernet connections to flash the board. Use
the LEDE "sysupgrade.bin" image with tftp.
Apply power to the board and in the first 5 seconds, hit 2 to
select TFTP upload. The bootloader asks for board- and server IP
addresses and filename.
Alternate method: With the vendor firmware running, assign an IP
address to the ethernet port, tftp the firmware image to
/tmp and write to mtd4 ("KernelA").
Signed-off-by: Oliver Fleischmann <ogf@bnv-bamberg.de>
[remove pinctrl node from dts, no pin is used as GPIO]
Signed-off-by: Mathias Kresin <dev@kresin.me>
2017-07-20 19:02:33 +00:00
|
|
|
wmdr-143n|\
|
2015-08-17 06:01:49 +00:00
|
|
|
wmr-300|\
|
2017-01-18 10:34:56 +00:00
|
|
|
wn3000rpv3|\
|
2015-08-17 06:01:49 +00:00
|
|
|
wnce2001|\
|
2016-04-26 11:43:53 +00:00
|
|
|
wndr3700v5|\
|
2017-04-07 22:34:48 +00:00
|
|
|
wr512-3gn-4M|\
|
|
|
|
wr512-3gn-8M|\
|
2015-08-17 06:01:49 +00:00
|
|
|
wr6202|\
|
2016-04-21 19:46:59 +00:00
|
|
|
wrh-300cr|\
|
2015-08-17 06:01:49 +00:00
|
|
|
wrtnode|\
|
2016-01-01 21:19:50 +00:00
|
|
|
wrtnode2r |\
|
|
|
|
wrtnode2p |\
|
2015-08-17 06:01:49 +00:00
|
|
|
wsr-600|\
|
2017-04-07 22:34:48 +00:00
|
|
|
wt1520-4M|\
|
|
|
|
wt1520-8M|\
|
|
|
|
wt3020-4M|\
|
|
|
|
wt3020-8M|\
|
2015-08-17 06:01:49 +00:00
|
|
|
wzr-agl300nh|\
|
|
|
|
x5|\
|
|
|
|
x8|\
|
|
|
|
y1|\
|
|
|
|
y1s|\
|
ramips: Add support for ZBT WE1026-5G
The ZBT WE1026-5G
(http://www.zbtlink.com/products/router/WE1026-5G.html) is the follow-up
to the ZBT WE1026 and is based on MT7620. For the previous WE1026, the
ZBT WE826 image could be used. However, as the name implies, the -5G
comes equipped with a 5GHz wifi radio. As the WE826 only has a 2.4GHz
radio, the addition of 5GHz means that a separate image is needed for
the WE1026-5G. I suspect that this image will also work on the previous
WE1026, but I don't have a device to test with.
The WE1026-5G has following specifications:
* CPU: MT7620A
* 1x 10/100Mbps Ethernet.
* 16 MB Flash.
* 64 MB RAM.
* 1x USB 2.0 port.
* 1x mini-PCIe slots.
* 1x SIM slots.
* 1x 2.4Ghz WIFI.
* 1x 5GHz wifi (MT7612)
* 1x button.
* 3x controllable LEDs.
Works:
* Wifi.
* Switch.
* mini-PCIe slot. Only tested with a USB device (a modem).
* SIM slot.
* Sysupgrade.
* Button (reset).
Not working:
* The 5GHz WIFI LED is completely dead. I suspect the issue is the same
as on other devices with Mediatek 5Ghz wifi-cards/chips. The LED is
controlled by the driver, and mt76 (currently) does not support this.
Not tested:
* SD card reader.
Notes:
* The modem (labeled 3G/4G) and power LEDs are controlled by the
hardware.
* There is a 32MB version of this device available, but I do not have
access to it. I have therefor only added support for the 16MB version,
but added all the required infrastructure to make adding support for the
32MB version easy.
Installation:
The router comes pre-installed with OpenWRT, including a variant of
Luci. The initial firmware install can be done through this UI,
following normal procedure. I.e., access the UI and update the firmware
using the sysupgrade-image. Remember to select that you do not want to
keep existing settings.
Recovery:
If you brick the device, the WE1026-5G supports recovery using HTTP. Keep the
reset button pressed for ~5sec when booting to start the web server. Set the
address of the network interface on your machine to 192.168.1.2/24, and
point your browser to 192.168.1.1 to access the recovery UI. From the
recovery UI you can upload a firmware image.
Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
2017-09-10 12:44:47 +00:00
|
|
|
we1026-5g-16m|\
|
2016-06-23 08:58:08 +00:00
|
|
|
zbt-ape522ii|\
|
2016-09-25 19:09:31 +00:00
|
|
|
zbt-cpe102|\
|
2015-08-17 06:01:49 +00:00
|
|
|
zbt-wa05|\
|
2017-04-20 03:07:26 +00:00
|
|
|
zbt-we1326|\
|
2017-03-15 08:37:05 +00:00
|
|
|
zbt-we2026|\
|
2017-04-12 05:53:56 +00:00
|
|
|
zbt-we826-16M|\
|
|
|
|
zbt-we826-32M|\
|
2015-11-02 10:18:19 +00:00
|
|
|
zbt-wg2626|\
|
2017-04-07 21:52:27 +00:00
|
|
|
zbt-wg3526-16M|\
|
2017-04-01 08:46:44 +00:00
|
|
|
zbt-wg3526-32M|\
|
2015-08-17 06:01:49 +00:00
|
|
|
zbt-wr8305rt|\
|
2015-11-24 18:29:02 +00:00
|
|
|
zte-q7|\
|
|
|
|
youku-yk1)
|
2012-10-18 07:23:00 +00:00
|
|
|
[ "$magic" != "27051956" ] && {
|
2010-04-11 17:47:25 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2016-09-27 05:38:08 +00:00
|
|
|
3g-6200n|\
|
|
|
|
3g-6200nl|\
|
|
|
|
br-6475nd)
|
|
|
|
[ "$magic" != "43535953" ] && {
|
2015-01-03 18:31:06 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2016-09-27 05:38:08 +00:00
|
|
|
|
|
|
|
ar670w)
|
|
|
|
[ "$magic" != "6d000080" ] && {
|
2014-11-03 08:00:13 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
ramips: add support for TP-Link Archer C20 v1
TP-Link Archer C20 v1 is a router with 5-port FE switch and
non-detachable antennas. It's very similiar to TP-Link Archer C50.
Also it's based on MediaTek MT7620A+MT7610EN.
Specification:
- MediaTek MT7620A (580 Mhz)
- 64 MB of RAM
- 8 MB of FLASH
- 2T2R 2.4 GHz and 1T1R 5 GHz
- 5x 10/100 Mbps Ethernet
- 2x external, non-detachable antennas
- UART (J1) header on PCB (115200 8n1)
- 8x LED (GPIO-controlled*), 2x button, power input switch
- 1 x USB 2.0 port
* WAN LED in this devices is a dual-color, dual-leads type which isn't
(fully) supported by gpio-leds driver. This type of LED requires both
GPIOs state change at the same time to select color or turn it off.
For now, we support/use only the blue part of the LED.
* MT7610EN ac chip isn't not supported by LEDE. Therefore 5Ghz won't
work.
Factory image notes:
These devices use version 3 of TP-Link header, fortunately without RSA
signature (at least in case of devices sold in Europe). The difference
lays in the requirement for a non-zero value in "Additional Hardware
Version" field. Ideally, it should match the value stored in vendor
firmware header on device.
We are able to prepare factory firwmare file which is accepted and
(almost) correctly flashed from the vendor GUI. As it turned out, it
accepts files without U-Boot image with second header at the beginning
but due to some kind of bug in upgrade routine, flashed image gets
corrupted before it's written to flash. So, to flash this device we must
to prepare image using original firmware from tp-link site with uboot.
Flash instruction:
Until (if at all) TP-Link fixes described problem, the only way to flash
LEDE image in these devices is to use tftp recovery mode in U-Boot.
There are two ways to flash the device to LEDE:
1) Using tftp mode with UART connection and original LEDE image
- Place lede-ramips-mt7620-ArcherC20-squashfs-factory.bin in tftp
server directory
- Configure PC with static IP 192.168.0.66/24 and tftp server.
- Connect PC with one of LAN ports, power up the router and press
key "4" to access U-Boot CLI.
- Use the following commands to update the device to LEDE:
setenv serverip 192.168.0.66
tftp 0x80060000 lede-ramips-mt7620-ArcherC20-squashfs-factory.bin
erase tplink 0x20000 0x7a0000
cp.b 0x80060000 0x20000 0x7a0000
reset
- After that the device will reboot and boot to LEDE
2) Using tftp mode without UART connection but require some
manipulations with target image
- Download and unpack TP-Link Archer C20 v1 firmware from original web
site
- Split uboot.bin from original firmware by this command (example):
dd if=Archer_C20v1_0.9.1_4.0_up_boot(160427)_2016-04-27_13.53.59.bin of=uboot.bin bs=512 count=256 skip=1
- Create ArcherC20V1_tp_recovery.bin using this command:
cat uboot.bin lede-ramips-mt7620-ArcherC20-squashfs-factory.bin > ArcherC20V1_tp_recovery.bin
- Place ArcherC20V1_tp_recovery.bin in tftp server directory.
- Configure PC with static IP 192.168.0.66/24 and tftp server.
- Connect PC with one of LAN ports, press the reset button, power up
the router and keep button pressed for around 6-7 seconds, until
device starts downloading the file.
- Router will download file from server, write it to flash and reboot.
Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2017-09-08 09:39:17 +00:00
|
|
|
c20|\
|
2016-06-12 21:43:51 +00:00
|
|
|
c20i|\
|
2016-09-24 19:41:43 +00:00
|
|
|
c50|\
|
ramips: add support for TP-Link TL-WR840N v4 and TL-WR841N v13
TP-Link TL-WR840N v4 and TL-WR841N v13 are simple N300 routers with
5-port FE switch and non-detachable antennas. Both are very similar
and are based on MediaTek MT7628NN (aka MT7628N) WiSoC.
The difference between these two models is in number of available
LEDs, buttons and power input switch.
This work is partially based on GitHub PR#974.
Specification:
- MT7628N/N (580 MHz)
- 64 MB of RAM (DDR2)
- 8 MB of FLASH
- 2T2R 2.4 GHz
- 5x 10/100 Mbps Ethernet
- 2x external, non-detachable antennas
- UART (J1) header on PCB (115200 8n1)
- TL-WR840N v4: 5x LED (GPIO-controlled), 1x button
- TL-WR841N v13: 8x LED (GPIO-controlled*), 2x button, power input
switch
* WAN LED in TL-WR841N v13 is a dual-color, dual-leads type which isn't
(fully) supported by gpio-leds driver. This type of LED requires both
GPIOs state change at the same time to select color or turn it off.
For now, we support/use only the green part of the LED.
Factory image notes:
These devices use version 3 of TP-Link header, fortunately without RSA
signature (at least in case of devices sold in Europe). The difference
lays in the requirement for a non-zero value in "Additional Hardware
Version" field. Ideally, it should match the value stored in vendor
firmware header on device ("0x4"/"0x13" for these devices) but it seems
that anything other than "0" is correct.
We are able to prepare factory firwmare file which is accepted and
(almost) correctly flashed from the vendor GUI. As it turned out, it
accepts files without U-Boot image with second header at the beginning
but due to some kind of bug in upgrade routine, flashed image gets
corrupted before it's written to flash.
Tests showed that the GUI upgrade routine copies value of "Additional
Hardware Version" from existing firmware into offset "0x2023c" in
provided file, _before_ storing it in flash. In case of vendor firmware
upgrade files (which all include U-Boot image and two headers), this
offset points to the matching field in kernel+rootfs firmware part
header. Unfortunately, in case of LEDE factory image file which contains
only one header, it points to the offset "0x2023c" in kernel image. This
leads to a corrupted kernel and ends up with a "soft-bricked" device.
The good news is that U-Boot in these devices contains well known tftp
recovery mode, which can be triggered with "reset" button. What's more,
in comparison to some of older MediaTek based TP-Link devices, this
recovery mode doesn't write whole file at offset "0x0" in flash, without
verifying provided file in advance. In case of recovery mode in these
devices, first "0x20000" bytes are always skipped and "0x7a0000" bytes
from rest of the file are stored in flash at offset "0x20000".
Flash instruction:
Until (if at all) TP-Link fixes described problem, the only way to flash
LEDE image in these devices is to use tftp recovery mode in U-Boot:
1. Configure PC with static IP 192.168.0.66/24 and tftp server.
2. Rename "lede-ramips-mt7628-tl-wr84...-squashfs-tftp-recovery.bin"
to "tp_recovery.bin" and place it in tftp server directory.
3. Connect PC with one of LAN ports, press the reset button, power up
the router and keep button pressed for around 6-7 seconds, until
device starts downloading the file.
4. Router will download file from server, write it to flash and reboot.
To access U-Boot CLI, keep pressed "4" key during boot.
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2017-06-21 12:16:15 +00:00
|
|
|
mr200|\
|
|
|
|
tl-wr840n-v4|\
|
|
|
|
tl-wr841n-v13)
|
2015-08-17 06:18:38 +00:00
|
|
|
[ "$magic" != "03000000" ] && {
|
2012-10-18 07:23:03 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2015-08-17 06:18:38 +00:00
|
|
|
cy-swr1100|\
|
2016-05-02 03:57:40 +00:00
|
|
|
dch-m225|\
|
2015-08-17 06:18:38 +00:00
|
|
|
dir-610-a1|\
|
|
|
|
dir-645|\
|
|
|
|
dir-860l-b1)
|
|
|
|
[ "$magic" != "5ea3a417" ] && {
|
2014-01-15 18:29:44 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2017-03-11 07:44:33 +00:00
|
|
|
hc5962|\
|
2017-08-12 14:56:11 +00:00
|
|
|
mir3g|\
|
2017-03-11 07:44:33 +00:00
|
|
|
r6220)
|
2017-02-22 12:47:22 +00:00
|
|
|
# these boards use metadata images
|
|
|
|
return 0
|
|
|
|
;;
|
2017-07-23 19:06:44 +00:00
|
|
|
re350-v1)
|
|
|
|
[ "$magic" != "01000000" ] && {
|
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2017-05-29 09:24:49 +00:00
|
|
|
ubnt-erx|\
|
|
|
|
ubnt-erx-sfp)
|
2017-01-28 16:05:56 +00:00
|
|
|
nand_do_platform_check "$board" "$1"
|
|
|
|
return $?;
|
|
|
|
;;
|
|
|
|
wcr-1166ds|\
|
2015-08-17 06:18:38 +00:00
|
|
|
wsr-1166)
|
|
|
|
[ "$magic" != "48445230" ] && {
|
2015-01-09 15:40:51 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2010-04-11 17:47:25 +00:00
|
|
|
esac
|
|
|
|
|
|
|
|
echo "Sysupgrade is not yet supported on $board."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
platform_nand_pre_upgrade() {
|
2017-05-12 20:36:07 +00:00
|
|
|
local board=$(board_name)
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
|
|
|
|
case "$board" in
|
2017-05-29 09:24:49 +00:00
|
|
|
ubnt-erx|\
|
|
|
|
ubnt-erx-sfp)
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
platform_upgrade_ubnt_erx "$ARGV"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
2017-04-22 19:27:04 +00:00
|
|
|
platform_do_upgrade() {
|
2017-05-12 20:36:07 +00:00
|
|
|
local board=$(board_name)
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
|
|
|
|
case "$board" in
|
2017-02-22 12:47:22 +00:00
|
|
|
hc5962|\
|
2017-08-12 14:56:11 +00:00
|
|
|
mir3g|\
|
2017-03-11 07:44:33 +00:00
|
|
|
r6220|\
|
2017-05-29 09:24:49 +00:00
|
|
|
ubnt-erx|\
|
|
|
|
ubnt-erx-sfp)
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
nand_do_upgrade "$ARGV"
|
|
|
|
;;
|
2010-04-11 17:47:25 +00:00
|
|
|
*)
|
|
|
|
default_do_upgrade "$ARGV"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
2011-07-03 15:01:43 +00:00
|
|
|
|
|
|
|
disable_watchdog() {
|
|
|
|
killall watchdog
|
|
|
|
( ps | grep -v 'grep' | grep '/dev/watchdog' ) && {
|
|
|
|
echo 'Could not disable watchdog'
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-11-03 13:32:02 +00:00
|
|
|
blink_led() {
|
|
|
|
. /etc/diag.sh; set_state upgrade
|
|
|
|
}
|
|
|
|
|
2011-07-03 15:01:43 +00:00
|
|
|
append sysupgrade_pre_upgrade disable_watchdog
|
2015-11-03 13:32:02 +00:00
|
|
|
append sysupgrade_pre_upgrade blink_led
|