aboutsummaryrefslogtreecommitdiffstats
path: root/tools/firmware-utils/src/tplink-safeloader.c
diff options
context:
space:
mode:
authorAnderson Vulczak <andi@andi.com.br>2019-10-05 10:44:55 -0300
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>2019-11-27 22:54:36 +0100
commit9b90dc05f58c619962e69e36d275b6ea56893496 (patch)
tree86c311c658370f0ca0eecdd5d69ac53168b32ebf /tools/firmware-utils/src/tplink-safeloader.c
parentc08ddfce3f8f4cffefd6ff83dcfdd6782dac31d3 (diff)
downloadupstream-9b90dc05f58c619962e69e36d275b6ea56893496.tar.gz
upstream-9b90dc05f58c619962e69e36d275b6ea56893496.tar.bz2
upstream-9b90dc05f58c619962e69e36d275b6ea56893496.zip
ath79: add support for TP-Link Archer C6 v2 (US) and A6 (US/TW)
This patch is based on #1689 and adds support for TP-Link Archer C6 v2 (US) and A6 (US/TW). The hardware is the same as EU and RU variant, except for GPIOs (LEDS/Buttons), flash(chip/partitions) and UART being available on the board. - SOC: Qualcomm QCA9563 @ 775MHz - Flash: GigaDevice GD25Q127CS1G (16MiB) - RAM: Zentel A3R1GE40JBF (128 MiB DDR2) - Ethernet: Qualcomm QCA8337N: 4x 1Gbps LAN + 1x 1Gbps WAN - Wireless: - 2.4GHz (bgn) QCA9563 integrated (3x3) - 5GHz (ac) Qualcomm QCA9886 (2x2) - Button: 1x power, 1x reset, 1x wps - LED: 6x LEDs: power, wlan2g, wlan5g, lan, wan, wps - UART: 115200, 8n1 (header available on board) Known issues: - Wireless: 5GHz is known to have lower RSSI signal, it affects speed and range. Flash instructions: Upload openwrt-ath79-generic-tplink_archer-c6-v2-us-squashfs-factory.bin via the router Web interface. Flash instruction using tftp recovery: 1. Connect the computer to one of the LAN ports of the router 2. Set the computer IP to 192.168.0.66 3. Start a tftp server with the OpenWrt factory image in the tftp root directory renamed to ArcherA6v2_tp_recovery.bin. 4. Connect power cable to router, press and hold the reset button and turn the router on 5. Keep the reset button pressed until the WPS LED lights up 6. Wait ~150 seconds to complete flashing Flash partitioning: I've followed #1689 for defining the partition layout for this patch. The partition named as "tplink" @ 0xfd0000 is marked as read only as it is where some config for stock firmware are stored. On stock firmware those stock partitions starts at 0xfd9400 however I had not been able to make it functional starting on the same address as on stock fw, so it has been partitioned following #1689 and not the stock partition layout for this specific partition. Due to that firmware/rootfs partition lenght is 0xf80000 and not 0xf89400 as stock. According to the GPL code, the EU/RU/JP variant does have different GPIO pins assignment to LEDs and buttons, also the flash memory layout is different. GPL Source Code: https://static.tp-link.com/resources/gpl/gpl-A6v2_us.tar.gz Signed-off-by: Anderson Vulczak <andi@andi.com.br> [wrap commit message, remove soft_ver change for C6 v2 EU, move LED aliases to DTS files, remove dts-v1 in DTSI, node/property reorder in DTSI] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Diffstat (limited to 'tools/firmware-utils/src/tplink-safeloader.c')
-rw-r--r--tools/firmware-utils/src/tplink-safeloader.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
index f8b8491326..c09ea347b2 100644
--- a/tools/firmware-utils/src/tplink-safeloader.c
+++ b/tools/firmware-utils/src/tplink-safeloader.c
@@ -881,7 +881,7 @@ static struct device_info boards[] = {
.last_sysupgrade_partition = "file-system",
},
- /** Firmware layout for the C6v2 */
+ /** Firmware layout for the Archer C6 v2 (EU/RU/JP) */
{
.id = "ARCHER-C6-V2",
.vendor = "",
@@ -916,6 +916,40 @@ static struct device_info boards[] = {
.last_sysupgrade_partition = "file-system",
},
+ /** Firmware layout for the Archer C6 v2 (US) and A6 v2 (US/TW) */
+ {
+ .id = "ARCHER-C6-V2-US",
+ .vendor = "",
+ .support_list =
+ "SupportList:\n"
+ "{product_name:Archer A6,product_ver:2.0.0,special_id:55530000}\n"
+ "{product_name:Archer A6,product_ver:2.0.0,special_id:54570000}\n"
+ "{product_name:Archer C6,product_ver:2.0.0,special_id:55530000}\n",
+ .support_trail = '\x00',
+ .soft_ver = "soft_ver:1.1.1\n",
+
+ .partitions = {
+ {"factory-boot", 0x00000, 0x20000},
+ {"default-mac", 0x20000, 0x00200},
+ {"pin", 0x20200, 0x00100},
+ {"product-info", 0x20300, 0x00200},
+ {"device-id", 0x20500, 0x0fb00},
+ {"fs-uboot", 0x30000, 0x20000},
+ {"firmware", 0x50000, 0xf89400},
+ {"soft-version", 0xfd9400, 0x00100},
+ {"extra-para", 0xfd9500, 0x00100},
+ {"support-list", 0xfd9600, 0x00200},
+ {"profile", 0xfd9800, 0x03000},
+ {"default-config", 0xfdc800, 0x03000},
+ {"partition-table", 0xfdf800, 0x00800},
+ {"user-config", 0xfe0000, 0x0c000},
+ {"certificate", 0xfec000, 0x04000},
+ {"radio", 0xff0000, 0x10000},
+ {NULL, 0, 0}
+ },
+ .first_sysupgrade_partition = "os-image",
+ .last_sysupgrade_partition = "file-system",
+ },
/** Firmware layout for the C60v1 */
{
@@ -2069,6 +2103,9 @@ static void build_image(const char *output,
} else if (strcasecmp(info->id, "ARCHER-C6-V2") == 0) {
const char mdat[11] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00};
parts[5] = put_data("extra-para", mdat, 11);
+ } else if (strcasecmp(info->id, "ARCHER-C6-V2-US") == 0) {
+ const char mdat[11] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00};
+ parts[5] = put_data("extra-para", mdat, 11);
}
size_t len;