tplink-safeloader: add EAP610 v3 and EAP613 v1
[project/firmware-utils.git] / src / tplink-safeloader.c
index f39e7fe15f2a18815c632c9c13f6dc44af9ff0f4..53a42f7a7d33d01754b26969d1ab20fa1fb62b5f 100644 (file)
@@ -971,6 +971,55 @@ static struct device_info boards[] = {
                .last_sysupgrade_partition = "file-system",
        },
 
+       /** Firmware layout for the Archer AX23 v1 */
+       {
+               .id     = "ARCHER-AX23-V1",
+               .vendor = "",
+               .support_list =
+                       "SupportList:\n"
+                       "{product_name:Archer AX23,product_ver:1.0,special_id:45550000}\n"
+                       "{product_name:Archer AX23,product_ver:1.0,special_id:4A500000}\n"
+                       "{product_name:Archer AX23,product_ver:1.0,special_id:4B520000}\n"
+                       "{product_name:Archer AX23,product_ver:1.0,special_id:52550000}\n"
+                       "{product_name:Archer AX23,product_ver:1.0.0,special_id:43410000}\n"
+                       "{product_name:Archer AX23,product_ver:1.0.0,special_id:54570000}\n"
+                       "{product_name:Archer AX23,product_ver:1.0.0,special_id:55530000}\n"
+                       "{product_name:Archer AX23,product_ver:1.20,special_id:45550000}\n"
+                       "{product_name:Archer AX23,product_ver:1.20,special_id:4A500000}\n"
+                       "{product_name:Archer AX23,product_ver:1.20,special_id:52550000}\n"
+                       "{product_name:Archer AX23,product_ver:1.20,special_id:55530000}\n"
+                       "{product_name:Archer AX1800,product_ver:1.20,special_id:45550000}\n"
+                       "{product_name:Archer AX1800,product_ver:1.20,special_id:52550000}\n",
+               .part_trail = 0x00,
+               .soft_ver = SOFT_VER_TEXT("soft_ver:3.0.3\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, 0x00400},
+                       {"profile", 0xfe0d00, 0x03000},
+                       {"extra-para", 0xfe3d00, 0x00100},
+                       {"radio", 0xff0000, 0x10000},
+                       {NULL, 0, 0}
+               },
+               .first_sysupgrade_partition = "os-image",
+               .last_sysupgrade_partition = "file-system",
+       },
        /** Firmware layout for the C2v3 */
        {
                .id     = "ARCHER-C2-V3",
@@ -1088,6 +1137,7 @@ static struct device_info boards[] = {
                .support_list =
                        "SupportList:\r\n"
                        "{product_name:Archer C59,product_ver:1.0.0,special_id:00000000}\r\n"
+                       "{product_name:Archer C59,product_ver:1.0.0,special_id:43410000}\r\n"
                        "{product_name:Archer C59,product_ver:1.0.0,special_id:45550000}\r\n"
                        "{product_name:Archer C59,product_ver:1.0.0,special_id:52550000}\r\n"
                        "{product_name:Archer C59,product_ver:1.0.0,special_id:55530000}\r\n",
@@ -1127,6 +1177,7 @@ static struct device_info boards[] = {
                .support_list =
                        "SupportList:\r\n"
                        "{product_name:Archer C59,product_ver:2.0.0,special_id:00000000}\r\n"
+                       "{product_name:Archer C59,product_ver:2.0.0,special_id:43410000}\r\n"
                        "{product_name:Archer C59,product_ver:2.0.0,special_id:45550000}\r\n"
                        "{product_name:Archer C59,product_ver:2.0.0,special_id:55530000}\r\n",
                .part_trail = 0x00,
@@ -1281,7 +1332,9 @@ static struct device_info boards[] = {
                        "{product_name:Archer A6,product_ver:3.0.0,special_id:43410000}\n"
                        "{product_name:Archer A6,product_ver:3.0.0,special_id:55530000}\n"
                        "{product_name:Archer A6,product_ver:3.0.0,special_id:54570000}\n"
-                       "{product_name:Archer A6,product_ver:3.0.0,special_id:4A500000}\n",
+                       "{product_name:Archer A6,product_ver:3.0.0,special_id:4A500000}\n"
+                       "{product_name:Archer A6,product_ver:3.20,special_id:45550000}\n"
+                       "{product_name:Archer A6,product_ver:3.20,special_id:52550000}\n",
                .part_trail = 0x00,
                .soft_ver = SOFT_VER_TEXT("soft_ver:1.0.5\n"),
 
@@ -1318,7 +1371,8 @@ static struct device_info boards[] = {
                .vendor = "",
                .support_list =
                        "SupportList:\n"
-                       "{product_name:Archer C6U,product_ver:1.0.0,special_id:45550000}\n",
+                       "{product_name:Archer C6U,product_ver:1.0.0,special_id:45550000}\n"
+                       "{product_name:Archer C6U,product_ver:1.0.0,special_id:52550000}\n",
                .part_trail = 0x00,
                .soft_ver = SOFT_VER_TEXT("soft_ver:1.0.2\n"),
 
@@ -1353,6 +1407,7 @@ static struct device_info boards[] = {
                .support_list =
                        "SupportList:\r\n"
                        "{product_name:Archer C60,product_ver:1.0.0,special_id:00000000}\r\n"
+                       "{product_name:Archer C60,product_ver:1.0.0,special_id:43410000}\r\n"
                        "{product_name:Archer C60,product_ver:1.0.0,special_id:45550000}\r\n"
                        "{product_name:Archer C60,product_ver:1.0.0,special_id:55530000}\r\n",
                .part_trail = 0x00,
@@ -1387,6 +1442,7 @@ static struct device_info boards[] = {
                .support_list =
                        "SupportList:\r\n"
                        "{product_name:Archer C60,product_ver:2.0.0,special_id:42520000}\r\n"
+                       "{product_name:Archer C60,product_ver:2.0.0,special_id:43410000}\r\n"
                        "{product_name:Archer C60,product_ver:2.0.0,special_id:45550000}\r\n"
                        "{product_name:Archer C60,product_ver:2.0.0,special_id:55530000}\r\n",
                .part_trail = 0x00,
@@ -1423,6 +1479,7 @@ static struct device_info boards[] = {
                .support_list =
                        "SupportList:\r\n"
                        "{product_name:Archer C60,product_ver:3.0.0,special_id:42520000}\r\n"
+                       "{product_name:Archer C60,product_ver:3.0.0,special_id:43410000}\r\n"
                        "{product_name:Archer C60,product_ver:3.0.0,special_id:45550000}\r\n"
                        "{product_name:Archer C60,product_ver:3.0.0,special_id:55530000}\r\n",
                .part_trail = 0x00,
@@ -1699,6 +1756,87 @@ static struct device_info boards[] = {
                .last_sysupgrade_partition = "file-system",
        },
 
+       /** Firmware layout for the Deco M5 */
+       {
+               .id = "DECO-M5",
+               .vendor = "",
+               .support_list =
+                       "SupportList:\n"
+                       "{product_name:M5,product_ver:1.0.0,special_id:55530000}\n"
+                       "{product_name:M5,product_ver:1.0.0,special_id:45550000}\n"
+                       "{product_name:M5,product_ver:1.0.0,special_id:43410000}\n"
+                       "{product_name:M5,product_ver:1.0.0,special_id:4A500000}\n"
+                       "{product_name:M5,product_ver:1.0.0,special_id:41550000}\n"
+                       "{product_name:M5,product_ver:1.0.0,special_id:4B520000}\n"
+                       "{product_name:M5,product_ver:1.0.0,special_id:49440000}\n"
+                       "{product_name:M5,product_ver:3.0.0,special_id:55530000}\n"
+                       "{product_name:M5,product_ver:3.0.0,special_id:45550000}\n"
+                       "{product_name:M5,product_ver:3.0.0,special_id:43410000}\n"
+                       "{product_name:M5,product_ver:3.0.0,special_id:4A500000}\n"
+                       "{product_name:M5,product_ver:3.0.0,special_id:41550000}\n"
+                       "{product_name:M5,product_ver:3.0.0,special_id:4B520000}\n"
+                       "{product_name:M5,product_ver:3.0.0,special_id:49440000}\n"
+                       "{product_name:M5,product_ver:3.0.0,special_id:53570000}\n"
+                       "{product_name:M5,product_ver:3.0.0,special_id:42340000}\n"
+                       "{product_name:M5,product_ver:3.0.0,special_id:54570000}\n"
+                       "{product_name:M5,product_ver:3.2.0,special_id:55530000}\n"
+                       "{product_name:M5,product_ver:3.2.0,special_id:45550000}\n"
+                       "{product_name:M5,product_ver:3.2.0,special_id:43410000}\n"
+                       "{product_name:M5,product_ver:3.2.0,special_id:4A500000}\n"
+                       "{product_name:M5,product_ver:3.2.0,special_id:41550000}\n"
+                       "{product_name:M5,product_ver:3.2.0,special_id:4B520000}\n"
+                       "{product_name:M5,product_ver:3.2.0,special_id:49440000}\n"
+                       "{product_name:M5,product_ver:3.2.0,special_id:53570000}\n"
+                       "{product_name:M5,product_ver:3.2.0,special_id:42340000}\n"
+                       "{product_name:M5,product_ver:3.2.0,special_id:54570000}\n",
+               .part_trail = 0x00,
+               .soft_ver = SOFT_VER_DEFAULT,
+
+               .partitions = {
+                       {"SBL1", 0x00000, 0x30000},
+                       {"boot-config_0", 0x30000, 0x10000},
+                       {"MIBIB", 0x40000, 0x10000},
+                       {"boot-config_1", 0x50000, 0x10000},
+                       {"QSEE", 0x60000, 0x60000},
+                       {"CDT", 0xc0000, 0x10000},
+                       {"DDRPARAMS", 0xd0000, 0x10000},
+                       {"uboot-env", 0xe0000, 0x10000},
+                       {"fs-uboot@0", 0xf0000, 0x80000},
+                       {"radio", 0x170000, 0x0fff0},
+                       {"bluetooth-XTAL", 0x17fff0, 0x00010},
+                       {"default-mac", 0x180000, 0x01000},
+                       {"device-id", 0x182000, 0x01000},
+                       {"product-info", 0x183000, 0x05000},
+                       {"support-list", 0x190000, 0x10000},
+                       {"user-config", 0x200000, 0x10000},
+                       {"device-config", 0x210000, 0x10000},
+                       {"group-info", 0x220000, 0x10000},
+                       {"partition-table@0", 0x230000, 0x02000},
+                       {"os-image@0", 0x240000, 0x300000},
+                       {"file-system@0", 0x540000, 0x790000},
+                       {"soft-version@0", 0xcd0000, 0x10000},
+                       {"profile@0", 0xce0000, 0x10000},
+                       {"default-config@0", 0xcf0000, 0x10000},
+                       {"partition-table@1", 0xd00000, 0x02000},
+                       {"fs-uboot@1", 0xd10000, 0x80000},
+                       {"os-image@1", 0xd90000, 0x400000},
+                       {"file-system@1", 0x1190000, 0xc40000},
+                       {"soft-version@1", 0x1dd0000, 0x10000},
+                       {"profile@1", 0x1de0000, 0x10000},
+                       {"default-config@1", 0x1df0000, 0x10000},
+                       {"tm-sig", 0x1e00000, 0x200000},
+                       {NULL, 0, 0}
+               },
+
+               .partition_names.partition_table = "partition-table@1",
+               .partition_names.soft_ver = "soft-version@1",
+               .partition_names.os_image = "os-image@1",
+               .partition_names.file_system = "file-system@1",
+
+               .first_sysupgrade_partition = "os-image@1",
+               .last_sysupgrade_partition = "file-system@1"
+       },
+
        /** Firmware layout for the Deco S4 v2 */
        {
                .id     = "DECO-S4-V2",
@@ -1983,6 +2121,39 @@ static struct device_info boards[] = {
                .last_sysupgrade_partition = "file-system"
        },
 
+       /** Firmware layout for the EAP610 v3/EAP613 v1 */
+       {
+               .id = "EAP610-V3",
+               .soft_ver = SOFT_VER_DEFAULT,
+               .soft_ver_compat_level = 1,
+               .support_list =
+                       "SupportList:\r\n"
+                       "EAP610(TP-Link|UN|AX1800-D):3.0\r\n"
+                       "EAP610(TP-Link|JP|AX1800-D):3.0\r\n"
+                       "EAP610(TP-Link|EG|AX1800-D):3.0\r\n"
+                       "EAP610(TP-Link|CA|AX1800-D):3.0\r\n"
+                       "EAP613(TP-Link|UN|AX1800-D):1.0 JP\r\n",
+               .part_trail = PART_TRAIL_NONE,
+
+               .partitions = {
+                       {"fs-uboot", 0x00000, 0x80000},
+                       {"partition-table", 0x80000, 0x02000},
+                       {"default-mac", 0x90000, 0x01000},
+                       {"support-list", 0x91000, 0x00100},
+                       {"product-info", 0x91100, 0x00400},
+                       {"soft-version", 0x92000, 0x00100},
+                       {"firmware", 0xa0000, 0xcf0000},
+                       {"user-config", 0xd90000, 0x60000},
+                       {"mutil-log", 0xf30000, 0x80000},
+                       {"oops", 0xfb0000, 0x40000},
+                       {"radio", 0xff0000, 0x10000},
+                       {NULL, 0, 0}
+               },
+
+               .first_sysupgrade_partition = "os-image",
+               .last_sysupgrade_partition = "file-system"
+       },
+
        /** Firmware layout for the EAP615-Wall v1 */
        {
                .id = "EAP615-WALL-V1",
@@ -2253,7 +2424,9 @@ static struct device_info boards[] = {
                        "SupportList:\n"
                        "{product_name:TL-WPA8631P,product_ver:3.0.0,special_id:41550000}\n"
                        "{product_name:TL-WPA8631P,product_ver:3.0.0,special_id:45550000}\n"
-                       "{product_name:TL-WPA8631P,product_ver:3.0.0,special_id:55530000}\n",
+                       "{product_name:TL-WPA8631P,product_ver:3.0.0,special_id:55530000}\n"
+                       "{product_name:TL-WPA8631P,product_ver:4.0.0,special_id:45550000}\n"
+                       "{product_name:TL-WPA8635P,product_ver:3.0.0,special_id:46520000}\n",
                .part_trail = 0x00,
                .soft_ver = SOFT_VER_DEFAULT,
 
@@ -2267,8 +2440,8 @@ static struct device_info boards[] = {
                        {"default-region", 0x732300, 0x00010},
                        {"product-info", 0x732400, 0x00200},
                        {"extra-para", 0x732600, 0x00200},
-                       {"soft-version", 0x732800, 0x00200},
-                       {"support-list", 0x732a00, 0x00100},
+                       {"soft-version", 0x732800, 0x00100},
+                       {"support-list", 0x732900, 0x00200},
                        {"profile", 0x732b00, 0x00100},
                        {"default-config", 0x732c00, 0x00800},
                        {"plc-type", 0x733400, 0x00020},
@@ -3610,6 +3783,7 @@ static void build_image(const char *output,
        if (strcasecmp(info->id, "ARCHER-A6-V3") == 0 ||
            strcasecmp(info->id, "ARCHER-A7-V5") == 0 ||
            strcasecmp(info->id, "ARCHER-A9-V6") == 0 ||
+           strcasecmp(info->id, "ARCHER-AX23-V1") == 0 ||
            strcasecmp(info->id, "ARCHER-C2-V3") == 0 ||
            strcasecmp(info->id, "ARCHER-C7-V4") == 0 ||
            strcasecmp(info->id, "ARCHER-C7-V5") == 0 ||