ath79: add support for TP-Link RE450 v3
authorAndreas Wiese <aw-openwrt@meterriblecrew.net>
Wed, 27 May 2020 13:31:30 +0000 (15:31 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Sun, 31 May 2020 13:44:05 +0000 (15:44 +0200)
TP-Link RE450 v3 is a dual band router/range-extender based on
Qualcomm/Atheros QCA9563 + QCA9880.

This device is nearly identical to RE450 v2 besides a modified flash
layout (hence I think force-flashing a RE450v2 image will lead to at
least loss of MAC address).

Specification:

- 775 MHz CPU
- 64 MB of RAM (DDR2)
- 8 MB of FLASH (SPI NOR)
- 3T3R 2.4 GHz
- 3T3R 5 GHz
- 1x 10/100/1000 Mbps Ethernet (AR8033 PHY)
- 7x LED, 4x button-
- possible UART header on PCB¹

Flash instruction:
Apply factory image in OEM firmware web-gui.

¹ Didn't check to connect as I didn't even manage to connect on
  RE450v2 (AFAIU it requires disconnecting some resistors, which I was
  too much of a coward to do).  But given the similarities to v2 I
  think it's the same or very similar procedure (and most likely also
  the only way to debrick).

Signed-off-by: Andreas Wiese <aw-openwrt@meterriblecrew.net>
[remove dts-v1 and compatible in DTSI]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
src/tplink-safeloader.c

index 10178dc714f1f9f9eb2d0a4b45ccc449323412a1..f0e777124c398868109f4a359ac81294d27426d4 100644 (file)
@@ -1728,7 +1728,46 @@ static struct device_info boards[] = {
                        {"user-config", 0x630000, 0x10000},
                        {"default-config", 0x640000, 0x10000},
                        {"radio", 0x7f0000, 0x10000},
+                       {NULL, 0, 0}
+               },
 
+               .first_sysupgrade_partition = "os-image",
+               .last_sysupgrade_partition = "file-system"
+       },
+
+       /** Firmware layout for the RE450 v3 */
+       {
+               .id     = "RE450-V3",
+               .vendor = "",
+               .support_list =
+                       "SupportList:\r\n"
+                       "{product_name:RE450,product_ver:3.0.0,special_id:00000000}\r\n"
+                       "{product_name:RE450,product_ver:3.0.0,special_id:55530000}\r\n"
+                       "{product_name:RE450,product_ver:3.0.0,special_id:45550000}\r\n"
+                       "{product_name:RE450,product_ver:3.0.0,special_id:4A500000}\r\n"
+                       "{product_name:RE450,product_ver:3.0.0,special_id:43410000}\r\n"
+                       "{product_name:RE450,product_ver:3.0.0,special_id:41550000}\r\n"
+                       "{product_name:RE450,product_ver:3.0.0,special_id:41530000}\r\n"
+                       "{product_name:RE450,product_ver:3.0.0,special_id:4B520000}\r\n"
+                       "{product_name:RE450,product_ver:3.0.0,special_id:42520000}\r\n",
+               .support_trail = '\x00',
+               .soft_ver = NULL,
+
+               /* We're using a dynamic kernel/rootfs split here */
+               .partitions = {
+                       {"fs-uboot", 0x00000, 0x20000},
+                       {"default-mac", 0x20000, 0x00020},
+                       {"pin", 0x20020, 0x00020},
+                       {"product-info", 0x21000, 0x01000},
+                       {"partition-table", 0x22000, 0x02000},
+                       {"soft-version", 0x24000, 0x01000},
+                       {"support-list", 0x25000, 0x01000},
+                       {"profile", 0x26000, 0x08000},
+                       {"user-config", 0x2e000, 0x10000},
+                       {"default-config", 0x3e000, 0x10000},
+                       {"config-info", 0x4e000, 0x00400},
+                       {"firmware", 0x50000, 0x7a0000},
+                       {"radio", 0x7f0000, 0x10000},
                        {NULL, 0, 0}
                },