ar71xx: add support for TP-Link TL-WR1043N v5
[openwrt/openwrt.git] / tools / firmware-utils / src / tplink-safeloader.c
index c1f7c7d16ed8228f940245dda04a0a1a5c71bbfb..88e2e88bdf3072f4e3c7a9c6b058fe8579d5a802 100644 (file)
@@ -683,6 +683,42 @@ static struct device_info boards[] = {
                .last_sysupgrade_partition = "file-system"
        },
 
+       /** Firmware layout for the TL-WR1043 v5 */
+       {
+               .id     = "TLWR1043NV5",
+               .vendor = "",
+               .support_list =
+                       "SupportList:\n"
+                       "{product_name:TL-WR1043N,product_ver:5.0.0,special_id:45550000}\n"
+                       "{product_name:TL-WR1043N,product_ver:5.0.0,special_id:55530000}\n",
+               .support_trail = '\x00',
+               .soft_ver = "soft_ver:1.0.0\n",
+               .partitions = {
+                       {"factory-boot", 0x00000, 0x20000},
+                       {"fs-uboot", 0x20000, 0x20000},
+                       {"os-image", 0x40000, 0x180000},
+                       {"file-system", 0x1c0000, 0xd40000},
+                       {"default-mac", 0xf00000, 0x00200},
+                       {"pin", 0xf00200, 0x00200},
+                       {"device-id", 0xf00400, 0x00100},
+                       {"product-info", 0xf00500, 0x0fb00},
+                       {"soft-version", 0xf10000, 0x01000},
+                       {"extra-para", 0xf11000, 0x01000},
+                       {"support-list", 0xf12000, 0x0a000},
+                       {"profile", 0xf1c000, 0x04000},
+                       {"default-config", 0xf20000, 0x10000},
+                       {"user-config", 0xf30000, 0x40000},
+                       {"qos-db", 0xf70000, 0x40000},
+                       {"certificate", 0xfb0000, 0x10000},
+                       {"partition-table", 0xfc0000, 0x10000},
+                       {"log", 0xfd0000, 0x20000},
+                       {"radio", 0xff0000, 0x10000},
+                       {NULL, 0, 0}
+               },
+               .first_sysupgrade_partition = "os-image",
+               .last_sysupgrade_partition = "file-system"
+       },
+
        /** Firmware layout for the TL-WR1043 v4 */
        {
                .id     = "TLWR1043NDV4",
@@ -1261,7 +1297,9 @@ static void build_image(const char *output,
        parts[3] = read_file("os-image", kernel_image, false);
        parts[4] = read_file("file-system", rootfs_image, add_jffs2_eof);
 
-       if (strcasecmp(info->id, "ARCHER-C25-V1") == 0) {
+       /* Some devices need the extra-para partition to accept the firmware */
+       if (strcasecmp(info->id, "ARCHER-C25-V1") == 0 ||
+           strcasecmp(info->id, "TLWR1043NV5") == 0) {
                const char mdat[11] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00};
                parts[5] = put_data("extra-para", mdat, 11);
        } else if (strcasecmp(info->id, "ARCHER-C7-V4") == 0) {