[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