You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/tools
Piotr Dymacz 24043a0d2e 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>
7 years ago
..
autoconf treewide: clean up download hashes 8 years ago
automake automake: import upstream fix for perl 5.26 7 years ago
b43-tools b43-tools: fix tarball hash 8 years ago
bc treewide: clean up download hashes 8 years ago
bison treewide: clean up download hashes 8 years ago
ccache ccache: update to 3.3.4 7 years ago
cmake tools/cmake: update to 3.8.1 7 years ago
coreutils tools/coreutils: Update to 8.27 7 years ago
dosfstools tools/dosfstools: Update to 4.1 7 years ago
e2fsprogs tools/e2fsprogs: Update to 1.43.4 8 years ago
elftosb treewide: clean up download hashes 8 years ago
expat treewide: clean up download hashes 8 years ago
findutils treewide: clean up download hashes 8 years ago
firmware-utils ramips: add support for TP-Link TL-WR840N v4 and TL-WR841N v13 7 years ago
flex flex: update to 2.6.4 (FS#809) 7 years ago
flock tools: flock: add NFSv4 compatibility 8 years ago
genext2fs treewide: clean up download hashes 8 years ago
gengetopt treewide: clean up download hashes 8 years ago
gmp tools: gmp: Update to 6.1.2 8 years ago
include tools: host/include/getline.h: Remove 7 years ago
isl tools/isl: update to 0.18 7 years ago
kernel2minor tools: update kernel2minor to 0.24 version 8 years ago
libelf treewide: clean up download hashes 8 years ago
libressl tools/libressl: update to 2.5.4 7 years ago
libtool treewide: clean up download hashes 8 years ago
lzma treewide: clean up download hashes 8 years ago
lzma-old treewide: clean up download hashes 8 years ago
m4 tools/m4: update 1.4.18 7 years ago
make-ext4fs treewide: clean up and unify PKG_VERSION for git based downloads 8 years ago
missing-macros tools: remove a bunch of unused automake macros 9 years ago
mkimage tools: mkimage: pass crypto libraries through HOST_LOADLIBES (FS#381) 8 years ago
mklibs treewide: clean up download hashes 8 years ago
mm-macros treewide: clean up download hashes 8 years ago
mpc treewide: clean up download hashes 8 years ago
mpfr treewide: clean up download hashes 8 years ago
mtd-utils mtd-utils/mkfs.jffs2: honor env SOURCE_DATE_EPOCH 7 years ago
mtools treewide: clean up download hashes 8 years ago
padjffs2 tools: padjffs2: add option to output padding data to stdout 8 years ago
patch treewide: clean up download hashes 8 years ago
patch-image tools: patch-image: fix file descriptor leak. 7 years ago
patchelf treewide: clean up download hashes 8 years ago
pkg-config treewide: clean up download hashes 8 years ago
qemu qemu: rename internal crypto/aes symbols 8 years ago
quilt treewide: clean up download hashes 8 years ago
scons treewide: clean up download hashes 8 years ago
sdimage treewide: clean up and unify PKG_VERSION for git based downloads 8 years ago
sed tools/sed: Update to 4.4 7 years ago
sparse tools/sparse: Update to snapshot 2017-03-31 7 years ago
squashfs treewide: clean up download hashes 8 years ago
squashfs4 treewide: clean up download hashes 8 years ago
sstrip tools: remove static linking support 10 years ago
tar tar: override symlink permissions 7 years ago
upslug2 treewide: clean up download hashes 8 years ago
wrt350nv2-builder tools: remove static linking support 10 years ago
xz xz: Update to 5.2.3 8 years ago
Makefile tools/upx: Remove from repo 7 years ago