diff --git a/target/linux/ar71xx/generic/profiles/tp-link.mk b/target/linux/ar71xx/generic/profiles/tp-link.mk
index b7d4ec0..b18c364 100644
--- a/target/linux/ar71xx/generic/profiles/tp-link.mk
+++ b/target/linux/ar71xx/generic/profiles/tp-link.mk
@@ -38,6 +38,17 @@ endef
$(eval $(call Profile,TLMR11U))
+define Profile/TLMR12U
+ NAME:=TP-LINK TL-MR12U
+ PACKAGES:=kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
+endef
+
+define Profile/TLMR12U/Description
+ Package set optimized for the TP-LINK TL-MR12U.
+endef
+$(eval $(call Profile,TLMR12U))
+
+
define Profile/TLMR13U
NAME:=TP-LINK TL-MR13U
PACKAGES:=kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index a1b53bc..4d1ba18 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -910,6 +910,7 @@ $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ARCHERC7,archer-c7-v1,ARCHER-C7,t
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR10U,tl-mr10u-v1,TL-MR10U,ttyATH0,115200,0x00100101,1,4Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR11UV1,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR11UV2,tl-mr11u-v2,TL-MR11U,ttyATH0,115200,0x00110102,1,4Mlzma))
+$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR12UV1,tl-mr12u-v1,TL-MR3040,ttyATH0,115200,0x00120101,1,4Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR13U,tl-mr13u-v1,TL-MR13U,ttyATH0,115200,0x00130101,1,4Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR3020,tl-mr3020-v1,TL-MR3020,ttyATH0,115200,0x30200001,1,4Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR3040V1,tl-mr3040-v1,TL-MR3040,ttyATH0,115200,0x30400001,1,4Mlzma))
diff --git a/tools/firmware-utils/src/mktplinkfw.c b/tools/firmware-utils/src/mktplinkfw.c
index 2574678..a7ca728 100644
--- a/tools/firmware-utils/src/mktplinkfw.c
+++ b/tools/firmware-utils/src/mktplinkfw.c
@@ -31,6 +31,7 @@
#define HEADER_VERSION_V1 0x01000000
#define HWID_TL_MR10U_V1 0x00100101
+#define HWID_TL_MR12U_V1 0x00120101
#define HWID_TL_MR13U_V1 0x00130101
#define HWID_TL_MR3020_V1 0x30200001
#define HWID_TL_MR3220_V1 0x32200001
@@ -200,6 +201,11 @@ static struct board_info boards[] = {
.hw_rev = 1,
.layout_id = "4Mlzma",
}, {
+ .id = "TL-MR12Uv1",
+ .hw_id = HWID_TL_MR12U_V1,
+ .hw_rev = 1,
+ .layout_id = "4Mlzma",
+ }, {
.id = "TL-MR13Uv1",
.hw_id = HWID_TL_MR13U_V1,
.hw_rev = 1,
I have not tested them as I do not have the TL-MR12U, but I expect this should generate correct firmware file. Use at your own risk.