openwrt-owl/tools/firmware-utils/src
Maxim Anisimov 161a3be5ad 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-13 08:07:54 +02:00
..
add_header.c firmware-utils: when using open with O_CREAT and O_WRONLY, also use O_TRUNC to ensure that overwritten files have the right size (fixes #3505) 2008-09-23 16:12:40 +00:00
addpattern.c firmware-utils: honor env SOURCE_DATE_EPOCH 2017-06-19 14:34:52 +02:00
asustrx.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
bcm_tag.h firmware-utils: move bcm_tag.h here 2012-10-08 09:59:50 +00:00
bcmalgo.c tools: add Broadcom cable modem firmware image creator 2013-06-06 22:21:52 +00:00
bcmalgo.h tools: add Broadcom cable modem firmware image creator 2013-06-06 22:21:52 +00:00
buffalo-enc.c firmware-utils: improve tools for Buffalo DHP series 2017-01-31 10:55:02 +01:00
buffalo-lib.c firmware-utils/buffalo-enc: explicitly use signed char for checksum function 2015-10-12 13:11:20 +00:00
buffalo-lib.h firmware-utils: improve tools for Buffalo DHP series 2017-01-31 10:55:02 +01:00
buffalo-tag.c firmware-utils: improve tools for Buffalo DHP series 2017-01-31 10:55:02 +01:00
buffalo-tftp.c firmware-utils: fix compilation warnings. 2014-10-20 06:29:13 +00:00
csysimg.h adds support for Edimax BR-6524N 2013-01-06 11:11:30 +00:00
cyg_crc.h firmware-utils: add new tool for the wrt400n (based on a patch by Sandeep Mistry <sandeep.mistry at gmail.com>) 2009-07-12 08:59:18 +00:00
cyg_crc16.c firmware-utils: add new tool for the wrt400n (based on a patch by Sandeep Mistry <sandeep.mistry at gmail.com>) 2009-07-12 08:59:18 +00:00
cyg_crc32.c firmware-utils: add new tool for the wrt400n (based on a patch by Sandeep Mistry <sandeep.mistry at gmail.com>) 2009-07-12 08:59:18 +00:00
dgfirmware.c firmware-utils: fix various compiler warnings 2015-12-11 15:09:30 +00:00
dgn3500sum.c firmware-utils: fix dgn3500sum compiler warnings 2017-06-26 20:08:36 +02:00
edimax_fw_header.c tools: edimax_fw_header: fix suspicious memset usage 2015-01-10 18:08:16 +00:00
encode_crc.c remove 'svn:executable' property 2010-04-12 17:08:57 +00:00
fix-u-media-header.c firmware-utils: new tool for fixing U-Media firmware headers 2012-10-18 07:23:09 +00:00
fw.h buld images for the Ubiquiti LiteStation and NanoStation ported from http://atheros.openwrt.net. Tested on a Nanostation 2 with airos 3 2008-05-07 23:47:17 +00:00
hcsmakeimage.c firmware-utils: honor env SOURCE_DATE_EPOCH 2017-06-19 14:34:52 +02:00
imagetag.c firmware-utils: honor env SOURCE_DATE_EPOCH 2017-06-19 14:34:52 +02:00
imagetag.ggo brcm63xx: do not align squashfs rootfs start 2015-02-27 17:38:14 +00:00
imagetag_cmdline.c brcm63xx: do not align squashfs rootfs start 2015-02-27 17:38:14 +00:00
imagetag_cmdline.h brcm63xx: do not align squashfs rootfs start 2015-02-27 17:38:14 +00:00
jcgimage.c firmware-utils: honor env SOURCE_DATE_EPOCH 2017-06-19 14:34:52 +02:00
lzma2eva.c firmware-utils: fix various compiler warnings 2015-12-11 15:09:30 +00:00
makeamitbin.c Add makeamitbin to generate images for other RDC-based devices, thanks sn9 ! 2008-10-28 16:26:42 +00:00
md5.c firmware-utils: replace md5 code with Alexander Peslyak's implementation 2016-11-28 07:52:31 +01:00
md5.h firmware-utils: replace md5 code with Alexander Peslyak's implementation 2016-11-28 07:52:31 +01:00
mkbrncmdline.c Support booting the Speedport W502V using BRN-BOOT. 2012-02-14 17:48:04 +00:00
mkbrnimg.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
mkbuffaloimg.c ar71xx: add support for Buffalo BHR-4GRV2 2016-11-16 10:54:33 +01:00
mkcameofw.c firmware-utils/mkcameofw: allow to use combined kernel image 2013-05-08 17:11:08 +00:00
mkcasfw.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
mkchkimg.c tools/firmware-utils: document reserved fields in mkchkimg 2017-08-03 00:11:25 +02:00
mkcsysimg.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
mkdapimg.c Add Netgear WNCE2001 (OF version) 2013-04-09 14:19:33 +00:00
mkdcs932.c tools: add tool to generate dcs93xl images 2013-10-07 15:01:05 +00:00
mkdhpimg.c firmware-utils: improve tools for Buffalo DHP series 2017-01-31 10:55:02 +01:00
mkdniimg.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
mkedimaximg.c Add firmware tool for generating factory images for Edimax devices 2011-10-30 22:57:41 +00:00
mkfwimage.c firmware-utils: mkfwimage: fix firmware_max_length for XM layout 2016-02-29 20:11:33 +00:00
mkfwimage2.c tools/mkfwimage2: remove 256 length limit for partition images 2016-06-14 22:13:37 -07:00
mkheader_gemtek.c firmware-utils: add Gemtek header tool 2014-04-22 08:08:39 +00:00
mkhilinkfw.c firmware-utils: fix various compiler warnings 2015-12-11 15:09:30 +00:00
mkmerakifw-old.c tools/firmware-utils: fix portability issue in mkmerakifw-old 2016-09-22 13:37:23 +02:00
mkmerakifw.c firmware-utils: Fix build failure in mkmerakifw.c FS#298 2016-11-26 22:39:27 +01:00
mkmylofw.c ar71xx: Revert "added board support for compex wpj558" 2015-02-02 10:32:04 +00:00
mkplanexfw.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
mkporayfw.c ramips: generate factory images for Nexx devices 2014-12-07 16:53:22 +00:00
mkrtn56uimg.c firmware-utils: honor env SOURCE_DATE_EPOCH 2017-06-19 14:34:52 +02:00
mksenaofw.c firmware-utils: mksenaofw: rework option validation 2016-08-17 20:08:52 +02:00
mktitanimg.c fix mktitanimg segfault on 64-bits hosts (#7443) 2010-06-12 18:10:01 +00:00
mktitanimg.h add mktitanimg to create Titan (AR7-based) images (#6632) 2010-06-06 19:16:43 +00:00
mktplinkfw.c firmware-utils: mktplinkfw: rework combined image option 2017-07-22 23:29:50 +02:00
mktplinkfw2.c ramips: add support for TP-Link Archer C20 v1 2017-09-13 08:07:54 +02:00
mkwrggimg.c firmware-utils: fix compilation on MacOS X 2016-10-31 12:39:09 +01:00
mkwrgimg.c firmware-utils: rename the devname variable in mkwrgimg to avoid a clash with a BSD stdlib function 2011-07-08 05:20:24 +00:00
mkzcfw.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
mkzynfw.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
motorola-bin.c get rid of $Id$ - it has never helped us and it has broken too many patches ;) 2009-04-17 14:09:46 +00:00
myloader.h ar71xx: Revert "added board support for compex wpj558" 2015-02-02 10:32:04 +00:00
nand_ecc.c treewide: replace nbd@openwrt.org with nbd@nbd.name 2016-06-07 08:58:42 +02:00
osbridge-crc.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
oseama.c firmware-utils: oseama: support extracting entity 2016-06-15 10:54:16 +02:00
pc1crypt.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
ptgen.c ptgen: work around gcc miscompilation 2016-09-26 12:23:41 +02:00
seama.c tools: firmware-utils: fix compiler warnings 2015-10-11 19:00:41 +00:00
seama.h tools/firmware-utils: add seama tool 2012-10-18 07:22:57 +00:00
sha1.c firmware-utils/mkplanexfw: new firmware generation tool for the Planex MZK-W04NU device 2009-02-04 21:09:06 +00:00
sha1.h firmware-utils/mkplanexfw: new firmware generation tool for the Planex MZK-W04NU device 2009-02-04 21:09:06 +00:00
spw303v.c firmware-utils: honor env SOURCE_DATE_EPOCH 2017-06-19 14:34:52 +02:00
srec2bin.c firmware-utils: fix various compiler warnings 2015-12-11 15:09:30 +00:00
tplink-safeloader.c firmware-utils: tplink-safeloader: add support for TP-Link RE350 2017-07-25 21:02:53 +02:00
trx.c firmware-utils: improve tools for Buffalo DHP series 2017-01-31 10:55:02 +01:00
trx2edips.c firmware-utils: fix build on big endian systems 2011-06-21 21:13:58 +00:00
trx2usr.c
wrt400n.c Revert "tools: wrt400n: fix making factory images with kernel bigger than 1MB" 2017-01-20 06:43:13 +01:00
xorimage.c firmware-utils: honor env SOURCE_DATE_EPOCH 2017-06-19 14:34:52 +02:00
zyimage.c firmware-utils: add tool to create zyxel images 2016-11-17 20:01:21 +01:00
zynos.h firmware-utils/mkzynfw: add support for the NBG460N board 2010-05-14 09:20:36 +00:00
zyxbcm.c firmware-utils: honor env SOURCE_DATE_EPOCH 2017-06-19 14:34:52 +02:00