[PATCH] tplink-safeloader: add TP-Link Deco M4R v1 and v2 support

Foica David superh552 at gmail.com
Thu Apr 21 15:09:46 PDT 2022


Support creating images for TP-Link Deco M4R v1 and v2.

Original partition layout from OEM image:
 partition fs-uboot base 0x00000 size 0x80000
 partition os-image base 0x80000 size 0x200000
 partition file-system base 0x280000 size 0xc00000
 partition product-info base 0xe80000 size 0x05000
 partition default-mac base 0xe85000 size 0x01000
 partition device-id base 0xe86000 size 0x01000
 partition support-list base 0xe87000 size 0x10000
 partition user-config base 0xea7000 size 0x10000
 partition device-config base 0xeb7000 size 0x10000
 partition group-info base 0xec7000 size 0x10000
 partition partition-table base 0xed7000 size 0x02000
 partition soft-version base 0xed9000 size 0x10000
 partition profile base 0xee9000 size 0x10000
 partition default-config base 0xef9000 size 0x10000
 partition url-sig base 0xfe0000 size 0x10000
 partition radio base 0xff0000 size 0x10000

The 'os-image' and 'file-system' partitions were merged into 'firmware'
to make use of the automatic mtd split.

The first 2 versions of the device use the same firmware image,
v3 and v4 are different.

Signed-off-by: Foica David <superh552 at gmail.com>
---
 src/tplink-safeloader.c | 49 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/src/tplink-safeloader.c b/src/tplink-safeloader.c
index c4727df..604cce8 100644
--- a/src/tplink-safeloader.c
+++ b/src/tplink-safeloader.c
@@ -1779,6 +1779,55 @@ static struct device_info boards[] = {
 		.last_sysupgrade_partition = "file-system"
 	},
 
+	/** Firmware layout for the Deco M4R v1 and v2 */
+	{
+		.id     = "DECO-M4R",
+		.vendor = "",
+		.support_list =
+			"SupportList:\n"
+			"{product_name:M4R,product_ver:1.0.0,special_id:55530000}\n"
+			"{product_name:M4R,product_ver:1.0.0,special_id:45550000}\n"
+			"{product_name:M4R,product_ver:1.0.0,special_id:43410000}\n"
+			"{product_name:M4R,product_ver:1.0.0,special_id:4A500000}\n"
+			"{product_name:M4R,product_ver:1.0.0,special_id:41550000}\n"
+			"{product_name:M4R,product_ver:1.0.0,special_id:4B520000}\n"
+			"{product_name:M4R,product_ver:1.0.0,special_id:49440000}\n"
+			"{product_name:M4R,product_ver:2.0.0,special_id:55530000}\n"
+			"{product_name:M4R,product_ver:2.0.0,special_id:45550000}\n"
+			"{product_name:M4R,product_ver:2.0.0,special_id:43410000}\n"
+			"{product_name:M4R,product_ver:2.0.0,special_id:4A500000}\n"
+			"{product_name:M4R,product_ver:2.0.0,special_id:41550000}\n"
+			"{product_name:M4R,product_ver:2.0.0,special_id:4B520000}\n"
+			"{product_name:M4R,product_ver:2.0.0,special_id:54570000}\n"
+			"{product_name:M4R,product_ver:2.0.0,special_id:42340000}\n"
+			"{product_name:M4R,product_ver:2.0.0,special_id:49440000}\n",
+		.part_trail = 0x00,
+		.soft_ver = SOFT_VER_DEFAULT,
+
+		/* We're using a dynamic kernel/rootfs split here */
+		.partitions = {
+			{"fs-uboot", 0x00000, 0x80000},
+			{"firmware", 0x80000, 0xe00000},	/** Stock: name os-image base 0x80000 size 0x200000 */
+								/** Stock: name file-system base 0x280000 size 0xc00000 */
+			{"product-info", 0xe80000, 0x05000},
+			{"default-mac", 0xe85000, 0x01000},
+			{"device-id", 0xe86000, 0x01000},
+			{"support-list", 0xe87000, 0x10000},
+			{"user-config", 0xea7000, 0x10000},
+			{"device-config", 0xeb7000, 0x10000},
+			{"group-info", 0xec7000, 0x10000},
+			{"partition-table", 0xed7000, 0x02000},
+			{"soft-version", 0xed9000, 0x10000},
+			{"profile", 0xee9000, 0x10000},
+			{"default-config", 0xef9000, 0x10000},
+			{"url-sig", 0xfe0000, 0x10000},
+			{"radio", 0xff0000, 0x10000},
+			{NULL, 0, 0}
+		},
+		.first_sysupgrade_partition = "os-image",
+		.last_sysupgrade_partition = "file-system",
+	},
+
 	/** Firmware layout for the TL-WA1201 v2 */
 	{
 		.id     = "TL-WA1201-V2",
-- 
2.35.1




More information about the openwrt-devel mailing list