tools/tplink-safeloader: split CPE210 from CPE510 profile
[openwrt/openwrt.git] / tools / firmware-utils / src / tplink-safeloader.c
index 2e204aa2335e55515a60a1f5c08ca1b499eb9287..4938f74eecd122265072390e1c6b8cadb09844d0 100644 (file)
@@ -162,6 +162,15 @@ static const struct flash_partition_entry c2600_partitions[] = {
        {NULL, 0, 0}
 };
 
+/**
+   The support list for CPE210/220
+*/
+static const char cpe210_support_list[] =
+       "SupportList:\r\n"
+       "CPE210(TP-LINK|UN|N300-2):1.0\r\n"
+       "CPE210(TP-LINK|UN|N300-2):1.1\r\n"
+       "CPE220(TP-LINK|UN|N300-2):1.0\r\n"
+       "CPE220(TP-LINK|UN|N300-2):1.1\r\n";
 /**
    The support list for CPE210/220/510/520
 */
@@ -170,11 +179,7 @@ static const char cpe510_support_list[] =
        "CPE510(TP-LINK|UN|N300-5):1.0\r\n"
        "CPE510(TP-LINK|UN|N300-5):1.1\r\n"
        "CPE520(TP-LINK|UN|N300-5):1.0\r\n"
-       "CPE520(TP-LINK|UN|N300-5):1.1\r\n"
-       "CPE210(TP-LINK|UN|N300-2):1.0\r\n"
-       "CPE210(TP-LINK|UN|N300-2):1.1\r\n"
-       "CPE220(TP-LINK|UN|N300-2):1.0\r\n"
-       "CPE220(TP-LINK|UN|N300-2):1.1\r\n";
+       "CPE520(TP-LINK|UN|N300-5):1.1\r\n";
 
 /**
    The support list for C2600
@@ -511,12 +516,18 @@ static void * generate_sysupgrade_image_c2600(const struct flash_partition_entry
 }
 
 /** Generates an image for CPE210/220/510/520 and writes it to a file */
-static void do_cpe510(const char *output, const char *kernel_image, const char *rootfs_image, uint32_t rev, bool add_jffs2_eof, bool sysupgrade) {
+static void do_cpe(const char *output,
+               const char *kernel_image,
+               const char *rootfs_image,
+               uint32_t rev,
+               bool add_jffs2_eof,
+               bool sysupgrade,
+               const char *support_list) {
        struct image_partition_entry parts[6] = {};
 
        parts[0] = make_partition_table(cpe510_partitions);
        parts[1] = make_soft_version(rev);
-       parts[2] = make_support_list(cpe510_support_list,false);
+       parts[2] = make_support_list(support_list, false);
        parts[3] = read_file("os-image", kernel_image, false);
        parts[4] = read_file("file-system", rootfs_image, add_jffs2_eof);
 
@@ -549,7 +560,7 @@ static void do_c2600(const char *output, const char *kernel_image, const char *r
 
        parts[0] = make_partition_table(c2600_partitions);
        parts[1] = make_soft_version(rev);
-       parts[2] = make_support_list(c2600_support_list,true);
+       parts[2] = make_support_list(c2600_support_list, true);
        parts[3] = read_file("os-image", kernel_image, false);
        parts[4] = read_file("file-system", rootfs_image, add_jffs2_eof);
 
@@ -656,8 +667,10 @@ int main(int argc, char *argv[]) {
        if (!output)
                error(1, 0, "no output filename has been specified");
 
-       if (strcmp(board, "CPE510") == 0)
-               do_cpe510(output, kernel_image, rootfs_image, rev, add_jffs2_eof, sysupgrade);
+       if (strcmp(board, "CPE210") == 0)
+               do_cpe(output, kernel_image, rootfs_image, rev, add_jffs2_eof, sysupgrade, cpe210_support_list);
+       else if (strcmp(board, "CPE510") == 0)
+               do_cpe(output, kernel_image, rootfs_image, rev, add_jffs2_eof, sysupgrade, cpe510_support_list);
        else if (strcmp(board, "C2600") == 0)
                do_c2600(output, kernel_image, rootfs_image, rev, add_jffs2_eof, sysupgrade);
        else