[PATCH V2] tplink-safeloader: Add support for Mercusys MR70X

Sander Vanheule sander at svanheule.net
Tue Jun 7 00:47:36 PDT 2022


Hi Ole Kristian,

On Tue, 2022-06-07 at 08:56 +0200, Ole Kristian Lona wrote:
> Hello, Sander!
> 
> I haven't had time to check the rest of the stuff I was working on for Deco M4R v3 and M5, but
> when I see this patch, and think of the work we did in the last round, I can't help thinking maybe
> we should clean up some more around this:
> 
> @@ -3407,6 +3448,7 @@ static void build_image(const char *output,
>             strcasecmp(info->id, "ARCHER-C60-V3") == 0 ||
>             strcasecmp(info->id, "ARCHER-C6U-V1") == 0 ||
>             strcasecmp(info->id, "ARCHER-C6-V3") == 0 ||
> +           strcasecmp(info->id, "MR70X") == 0 ||
>             strcasecmp(info->id, "TLWR1043NV5") == 0) {
>                 const uint8_t extra_para[2] = {0x01, 0x00};
>                 parts[5] = make_extra_para(info, extra_para,
> --
> 
> We could add an extra device parameter "needs_extra_para" set to 1 or 0, and check on that instead
> of the device ID in this routine, so that all changes for new devices can be done in only the
> device specific section. 

You are right, this is an eye sore.

Maybe the easiest way would be a new device_info field (untested):

#define EXTRA_PARA_SIZE		2
struct extra_para_info {
	uint8_t len;
	uint8_t data[EXTRA_PARA_SIZE];
};

#define EXTRA_PARA_NONE		{.len = 0}
#define EXTRA_PARA_DATA(bytes)	{.len = EXTRA_PARA_SIZE, .data = (bytes)}

Usage when set:

	.extra_para = EXTRA_PARA_DATA({0x01, 0x00});

When not defined, len will default to 0, disabling the extra_para partition.

make_extra_para() should be modified to check extra_para_info::len, but could then be called
unconditionally.


Feel free to write and submit a patch, you may be waiting for some time otherwise.

Best,
Sander



More information about the openwrt-devel mailing list