[PATCH] tplink-safeloader: add TP-Link Deco S4 v2 support

Sander Vanheule sander at svanheule.net
Sat Aug 13 23:04:01 PDT 2022


Hi,

On Sat, 2022-08-13 at 13:51 -0500, Nick French wrote:
> Support creating images for TP-Link Deco S4R v2.
> 
> Original partition layout from OEM image:
>  partition fs-uboot base 0x00000 size 0x80000
>  partition product-info base 0x80000 size 0x05000
>  partition default-mac base 0x85000 size 0x01000
>  partition device-id base 0x86000 size 0x01000
>  partition support-list base 0x87000 size 0x10000
>  partition user-config base 0xa7000 size 0x10000
>  partition device-config base 0xb7000 size 0x10000
>  partition group-info base 0xc7000 size 0x10000
>  partition partition-table base 0xd7000 size 0x02000
>  partition soft-version base 0xd9000 size 0x10000
>  partition profile base 0xe9000 size 0x10000
>  partition default-config base 0xf9000 size 0x10000
>  partition url-sig base 0x1e0000 size 0x10000
>  partition radio base 0x1f0000 size 0x10000
>  partition os-image base 0x200000 size 0x200000
>  partition file-system base 0x400000 size 0xc00000
> 
> The 'os-image' and 'file-system' partitions were merged into 'firmware'
> to make use of the automatic mtd split.
> 
> Signed-off-by: Nick French <nickfrench at gmail.com>
> ---
>  src/tplink-safeloader.c | 43 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
> 
> diff --git a/src/tplink-safeloader.c b/src/tplink-safeloader.c
> index 7a31ac2..7f9081d 100644
> --- a/src/tplink-safeloader.c
> +++ b/src/tplink-safeloader.c
> @@ -1577,6 +1577,49 @@ static struct device_info boards[] = {
>                 .last_sysupgrade_partition = "file-system",
>         },
>  
> +       /** Firmware layout for the Deco S4 v2 */
> +       {
> +               .id     = "DECO-S4-V2",
> +               .vendor = "",
> +               .support_list =
> +                       "SupportList:\n"
> +                       "{product_name:S4,product_ver:1.0.0,special_id:5553000
> 0}\n"
> +                       "{product_name:S4,product_ver:1.0.0,special_id:4555000
> 0}\n"
> +                       "{product_name:S4,product_ver:1.0.0,special_id:4341000
> 0}\n"
> +                       "{product_name:S4,product_ver:1.0.0,special_id:4A50000
> 0}\n"
> +                       "{product_name:S4,product_ver:1.0.0,special_id:4155000
> 0}\n"
> +                       "{product_name:S4,product_ver:1.0.0,special_id:4B52000
> 0}\n"
> +                       "{product_name:S4,product_ver:2.0.0,special_id:5553000
> 0}\n"
> +                       "{product_name:S4,product_ver:2.0.0,special_id:4555000
> 0}\n"
> +                       "{product_name:S4,product_ver:2.0.0,special_id:4341000
> 0}\n"
> +                       "{product_name:S4,product_ver:2.0.0,special_id:4A50000
> 0}\n"
> +                       "{product_name:S4,product_ver:2.0.0,special_id:4155000
> 0}\n"
> +                       "{product_name:S4,product_ver:2.0.0,special_id:4B52000
> 0}\n",

Looking at the FW images that can be downloaded from TP-Link's website, the
support-list partition appears to be a binary blob instead of a plaintext table.
Any idea what's going on here?

Best,
Sander

> +               .part_trail = 0x00,
> +               .soft_ver = SOFT_VER_DEFAULT,
> +
> +               .partitions = {
> +                       {"fs-uboot", 0x00000, 0x80000},
> +                       {"product-info", 0x80000, 0x05000},
> +                       {"default-mac", 0x85000, 0x01000},
> +                       {"device-id", 0x86000, 0x01000},
> +                       {"support-list", 0x87000, 0x10000},
> +                       {"user-config", 0xa7000, 0x10000},
> +                       {"device-config", 0xb7000, 0x10000},
> +                       {"group-info", 0xc7000, 0x10000},
> +                       {"partition-table", 0xd7000, 0x02000},
> +                       {"soft-version", 0xd9000, 0x10000},
> +                       {"profile", 0xe9000, 0x10000},
> +                       {"default-config", 0xf9000, 0x10000},
> +                       {"url-sig", 0x1e0000, 0x10000},
> +                       {"radio", 0x1f0000, 0x10000},
> +                       {"firmware", 0x200000, 0xe00000},
> +                       {NULL, 0, 0}
> +               },
> +               .first_sysupgrade_partition = "os-image",
> +               .last_sysupgrade_partition = "file-system",
> +       },
> +
>         /** Firmware layout for the EAP120 */
>         {
>                 .id     = "EAP120",



More information about the openwrt-devel mailing list