ramips: add support for TP-Link Archer C6 v3
authorAmish Vishwakarma <vishwakarma.amish@gmail.com>
Sat, 5 Jun 2021 07:01:00 +0000 (12:31 +0530)
committerDavid Bauer <mail@david-bauer.net>
Sun, 13 Jun 2021 09:32:31 +0000 (11:32 +0200)
The patch adds support for the TP-Link Archer C6 v3 (FCC ID TE7A6V3)
The patch adds identification changes to the existing TP-Link Archer A6,
by Vinay Patil <post2vinay@gmail.com>, which has identical hardware.

Specification
-------------
MediaTek MT7621 SOC
RAM:         128MB DDR3
SPI Flash:   W25Q128 (16MB)
Ethernet:    MT7530 5x 1000Base-T
WiFi 5GHz:   Mediatek MT7613BE
WiFi 2.4GHz: Mediatek MT7603E
UART/Serial: 115200 8n1

Device Configuration & Serial Port Pins
---------------------------------------
ETH Ports:    LAN4 LAN3 LAN2 LAN1 WAN
             _______________________
             |                     |
Serial Pins: |   VCC GND TXD RXD   |
             |_____________________|

LEDs:         Power Wifi2G Wifi5G LAN WAN

Build Output
------------
The build will generate following set of files
[1] openwrt-ramips-mt7621-tplink_archer-c6-v3-initramfs-kernel.bin
[2] openwrt-ramips-mt7621-tplink_archer-c6-v3-squashfs-factory.bin
[3] openwrt-ramips-mt7621-tplink_archer-c6-v3-squashfs-sysupgrade.bin

How to Use - Flashing from TP-Link Web Interface
------------------------------------------------
* Go to "Advanced/System Tools/Firmware Update".
* Click "Browse" and upload the OpenWrt factory image: factory.bin[2]
* Click the "Upgrade" button, and select "Yes" when prompted.

TFTP Booting
------------
Setup a TFTP boot server with address 192.168.0.5.
While starting U-boot press '4' key to stop autoboot.
Copy the initramfs-kernel.bin[1] to TFTP server folder, rename as test.bin
From u-boot command prompt run tftpboot followed by bootm.

Recovery
--------
Archer A6 V3 has recovery page activated if SPI booting from flash fails.
Recovery page can be activated by powercycling the router four times
before the boot process is complete.
Note: TFTP boot can be activated only from u-boot serial console.
Device recovery address: 192.168.0.1

Signed-off-by: Amish Vishwakarma <vishwakarma.amish@gmail.com>
[fix indent]
Signed-off-by: David Bauer <mail@david-bauer.net>
src/tplink-safeloader.c

index e5974325ae3073f9be3c84be54913a1e8fb8d59b..86d51db2695ea36b00bd96ca40624da5b08f8969 100644 (file)
@@ -1050,6 +1050,47 @@ static struct device_info boards[] = {
                .first_sysupgrade_partition = "os-image",
                .last_sysupgrade_partition = "file-system",
        },
+       /** Firmware layout for the Archer C6 v3 */
+       {
+               .id     = "ARCHER-C6-V3",
+               .vendor = "",
+               .support_list =
+                       "SupportList:\n"
+                       "{product_name:Archer C6,product_ver:3.20,special_id:55530000}"
+                       "{product_name:Archer C6,product_ver:3.20,special_id:45550000}"
+                       "{product_name:Archer C6,product_ver:3.20,special_id:52550000}"
+                       "{product_name:Archer C6,product_ver:3.20,special_id:4A500000}"
+                       "{product_name:Archer C6,product_ver:3.20,special_id:4B520000}",
+               .part_trail = 0x00,
+               .soft_ver = "soft_ver:1.0.9\n",
+
+               .partitions = {
+                       {"fs-uboot", 0x00000, 0x40000},
+                       {"firmware", 0x40000, 0xf60000},
+                       {"default-mac", 0xfa0000, 0x00200},
+                       {"pin", 0xfa0200, 0x00100},
+                       {"device-id", 0xfa0300, 0x00100},
+                       {"product-info", 0xfa0400, 0x0fc00},
+                       {"default-config", 0xfb0000, 0x08000},
+                       {"ap-def-config", 0xfb8000, 0x08000},
+                       {"user-config", 0xfc0000, 0x0a000},
+                       {"ag-config", 0xfca000, 0x04000},
+                       {"certificate", 0xfce000, 0x02000},
+                       {"ap-config", 0xfd0000, 0x06000},
+                       {"router-config", 0xfd6000, 0x06000},
+                       {"favicon", 0xfdc000, 0x02000},
+                       {"logo", 0xfde000, 0x02000},
+                       {"partition-table", 0xfe0000, 0x00800},
+                       {"soft-version", 0xfe0800, 0x00100},
+                       {"support-list", 0xfe0900, 0x00200},
+                       {"profile", 0xfe0b00, 0x03000},
+                       {"extra-para", 0xfe3b00, 0x00100},
+                       {"radio", 0xff0000, 0x10000},
+                       {NULL, 0, 0}
+               },
+               .first_sysupgrade_partition = "os-image",
+               .last_sysupgrade_partition = "file-system",
+       },
        /** Firmware layout for the Archer A6 v3  */
        {
                .id     = "ARCHER-A6-V3",
@@ -2896,6 +2937,7 @@ static void build_image(const char *output,
            strcasecmp(info->id, "ARCHER-C60-V2") == 0 ||
            strcasecmp(info->id, "ARCHER-C60-V3") == 0 ||
            strcasecmp(info->id, "ARCHER-C6U-V1") == 0 ||
+           strcasecmp(info->id, "ARCHER-C6-V3") == 0 ||
            strcasecmp(info->id, "TLWR1043NV5") == 0) {
                const uint8_t extra_para[2] = {0x01, 0x00};
                parts[5] = make_extra_para(info, extra_para,