diff --git a/target/linux/lantiq/base-files/etc/board.d/02_network b/target/linux/lantiq/base-files/etc/board.d/02_network
index 89faeaaa3470e3ea246d3fff90febb74c8a3b338..8ed525915d341e75c8b3c254c555ffc8420037e4 100755
--- a/target/linux/lantiq/base-files/etc/board.d/02_network
+++ b/target/linux/lantiq/base-files/etc/board.d/02_network
@@ -96,6 +96,13 @@ TDW8970|TDW8980)
 		"0:lan:1" "2:lan:2" "4:lan:3" "5:lan:4" "6t@eth0"
 	;;
 
+VR200v)
+	lan_mac=$(mtd_get_mac_binary romfile 61696)
+	wan_mac=$(macaddr_add "$lan_mac" 1)
+	ucidef_add_switch "switch0" \
+		"0:lan:1" "2:lan:2" "4:lan:3" "5:lan:4" "6t@eth0"
+	;;
+
 ARV7519RW22)
 	lan_mac=$(mtd_get_mac_binary boardconfig 22)
 	wan_mac=$(macaddr_add "$lan_mac" 1)
diff --git a/target/linux/lantiq/dts/VR200v.dts b/target/linux/lantiq/dts/VR200v.dts
new file mode 100644
index 0000000000000000000000000000000000000000..9cf306cfa367124334e193b3e09c25faf482fd2c
--- /dev/null
+++ b/target/linux/lantiq/dts/VR200v.dts
@@ -0,0 +1,280 @@
+/dts-v1/;
+
+/include/ "vr9.dtsi"
+
+/ {
+	model = "VR200v - TP-LINK Archer VR200v";
+
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+
+		leds {
+			boot = &power;
+			failsafe = &power;
+
+			dsl = &dsl;
+			internet = &internet;
+			usb = &usb;
+			usb2 = &usb;
+		};
+	};
+
+	memory@0 {
+		reg = <0x0 0x7f00000>;
+	};
+
+	fpi@10000000 {
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				mdio {
+					lantiq,groups = "mdio";
+					lantiq,function = "mdio";
+				};
+				gphy-leds {
+					lantiq,groups = "gphy0 led1", "gphy1 led1";
+					lantiq,function = "gphy";
+					lantiq,pull = <2>;
+					lantiq,open-drain = <0>;
+					lantiq,output = <1>;
+				};
+				phy-rst {
+					lantiq,pins = "io42";
+					lantiq,pull = <0>;
+					lantiq,open-drain = <0>;
+					lantiq,output = <1>;
+				};
+				pcie-rst {
+					lantiq,pins = "io38";
+					lantiq,pull = <0>;
+					lantiq,output = <1>;
+				};
+			};
+			pins_spi_default: pins_spi_default {
+				spi_in {
+					lantiq,groups = "spi_di";
+					lantiq,function = "spi";
+				};
+				spi_out {
+					lantiq,groups = "spi_do", "spi_clk",
+						"spi_cs4";
+					lantiq,function = "spi";
+					lantiq,output = <1>;
+				};
+			};
+		};
+
+		eth@E108000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "lantiq,xrx200-net";
+			reg = <	0xE108000 0x3000 /* switch */
+				0xE10B100 0x70 /* mdio */
+				0xE10B1D8 0x30 /* mii */
+				0xE10B308 0x30 /* pmac */
+			>;
+			interrupt-parent = <&icu0>;
+			interrupts = <73 72>;
+
+			lan: interface@0 {
+				compatible = "lantiq,xrx200-pdi";
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <0>;
+				mtd-mac-address = <&romfile 0xf100>;
+				lantiq,switch;
+
+				ethernet@0 {
+					compatible = "lantiq,xrx200-pdi-port";
+					reg = <0>;
+					phy-mode = "rgmii";
+					phy-handle = <&phy0>;
+					// gpios = <&gpio 42 1>;
+				};
+				ethernet@5 {
+					compatible = "lantiq,xrx200-pdi-port";
+					reg = <5>;
+					phy-mode = "rgmii";
+					phy-handle = <&phy5>;
+				};
+				ethernet@2 {
+					compatible = "lantiq,xrx200-pdi-port";
+					reg = <2>;
+					phy-mode = "gmii";
+					phy-handle = <&phy11>;
+				};
+				ethernet@3 {
+					compatible = "lantiq,xrx200-pdi-port";
+					reg = <4>;
+					phy-mode = "gmii";
+					phy-handle = <&phy13>;
+				};
+			};
+
+			mdio@0 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "lantiq,xrx200-mdio";
+				phy0: ethernet-phy@0 {
+					reg = <0x0>;
+					compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+				};
+				phy5: ethernet-phy@5 {
+					reg = <0x5>;
+					compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+				};
+				phy11: ethernet-phy@11 {
+					reg = <0x11>;
+					compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+				};
+				phy13: ethernet-phy@13 {
+					reg = <0x13>;
+					compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+				};
+			};
+		};
+
+		ifxhcd@E101000 {
+			status = "okay";
+			gpios = <&gpio 33 0>;
+			lantiq,portmask = <0x3>;
+		};
+
+		ifxhcd@E106000 {
+			status = "okay";
+			gpios = <&gpio 33 0>;
+		};
+	};
+
+	gphy-xrx200 {
+		compatible = "lantiq,phy-xrx200";
+		firmware = "lantiq/vr9_phy11g_a2x.bin";
+		phys = [ 00 01 ];
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+		reset {
+			label = "reset";
+			gpios = <&gpio 22 1>;
+			linux,code = <0x198>;
+		};
+
+		wifi {
+			label = "wifi";
+			gpios = <&gpio 0 0>;
+			linux,code = <0xf7>;
+			linux,input-type = <5>; /* EV_SW */
+		};
+
+		wps {
+			label = "wps";
+			gpios = <&gpio 2 1>;
+			linux,code = <0x211>;
+		};
+
+		dect_paging {
+			label = "dect_paging";
+			gpios = <&gpio 39 1>;
+			linux,code = <0x211>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		power: power {
+			label = "vr200v:blue:power";
+			gpios = <&gpio 46 1>;
+		};
+		dsl: dsl {
+			label = "vr200v:blue:dsl";
+			gpios = <&gpio 4 1>;
+		};
+		internet: internet {
+			label = "vr200v:blue:internet";
+			gpios = <&gpio 5 1>;
+		};
+		usb: usb {
+			label = "vr200v:blue:usb";
+			gpios = <&gpio 25 1>;
+		};
+		eth {
+			label = "vr200v:blue:lan";
+			gpios = <&gpio 40 1>;
+		};
+		wlan {
+			label = "vr200v:blue:wlan";
+			gpios = <&gpio 24 1>;
+		};
+		wlan5g {
+			label = "vr200v:blue:wlan5g";
+			gpios = <&gpio 20 1>;
+		};
+		phone {
+			label = "vr200v:blue:phone";
+			gpios = <&gpio 44 1>;
+		};
+	};
+};
+
+&spi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_spi_default>;
+
+	status = "ok";
+
+	m25p80@4 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "jedec,spi-nor";
+		reg = <4 0>;
+		spi-max-frequency = <33250000>;
+		m25p,fast-read;
+
+		partition@0 {
+			reg = <0x0 0x20000>;
+			label = "u-boot";
+			read-only;
+		};
+
+		partition@20000 {
+			reg = <0x20000 0xf90000>;
+			label = "firmware";
+		};
+
+		partition@fb0000 {
+			reg = <0xfb0000 0x10000>;
+			label = "radioDECT";
+			read-only;
+		};
+
+		partition@fc0000 {
+			reg = <0xfc0000 0x10000>;
+			label = "config";
+			read-only;
+		};
+
+		romfile: partition@fd0000 {
+			reg = <0xfd0000 0x10000>;
+			label = "romfile";
+			read-only;
+		};
+
+		partition@fe0000 {
+			reg = <0xfe0000 0x10000>;
+			label = "rom";
+			read-only;
+		};
+
+		partition@ff0000 {
+			reg = <0xff0000 0x10000>;
+			label = "radio";
+			read-only;
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index f986d386429e027cf16db1651b2a326f6ef3466f..882fba80f8f31502ace7018269bd889eb45e32ca 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -413,6 +413,9 @@ Image/Build/Profile/TDW8970=$(call Image/BuildTPLink/$(1),$(1),TDW8970,TD-W8970v
 Image/BuildKernel/Profile/TDW8980=$(call Image/BuildKernelTPLink/Template,TDW8980,TD-W8980v1,$(1))
 Image/Build/Profile/TDW8980=$(call Image/BuildTPLink/$(1),$(1),TDW8980,TD-W8980v1)
 
+Image/BuildKernel/Profile/VR200v=$(call Image/BuildKernelTPLink/Template,VR200v,ArcherVR200V,$(1))
+Image/Build/Profile/VR200v=$(call Image/BuildTPLink/$(1),$(1),VR200v,ArcherVR200V)
+
 Image/BuildKernel/Profile/VGV7510KW22NOR=$(call Image/BuildKernel/Template,VGV7510KW22NOR,$(1))
 Image/Build/Profile/VGV7510KW22NOR=$(call Image/Build/$(1),$(1),VGV7510KW22NOR)
 
diff --git a/target/linux/lantiq/xrx200/profiles/tplink.mk b/target/linux/lantiq/xrx200/profiles/tplink.mk
index 6ae939906089c5ffbc8a23633588d615902c53a4..091935d26765be4a893618445dd71abce5837b8c 100644
--- a/target/linux/lantiq/xrx200/profiles/tplink.mk
+++ b/target/linux/lantiq/xrx200/profiles/tplink.mk
@@ -11,3 +11,10 @@ define Profile/TDW8980
 endef
 
 $(eval $(call Profile,TDW8980))
+
+define Profile/VR200v
+  NAME:=TP-LINK Archer VR200v
+  PACKAGES:=kmod-usb-dwc2 kmod-ledtrig-usbdev
+endef
+
+$(eval $(call Profile,VR200v))
diff --git a/tools/firmware-utils/src/mktplinkfw2.c b/tools/firmware-utils/src/mktplinkfw2.c
index 92775290f816f95d461829ad9eb55439d54d82f6..9b9ebf526c144143a26f68b3c565b0a0556471c6 100644
--- a/tools/firmware-utils/src/mktplinkfw2.c
+++ b/tools/firmware-utils/src/mktplinkfw2.c
@@ -143,6 +143,12 @@ static struct flash_layout layouts[] = {
 		.kernel_la	= 0x80002000,
 		.kernel_ep	= 0x80002000,
 		.rootfs_ofs	= 0x140000,
+	}, {
+		.id		= "16Mltq",
+		.fw_max_len	= 0xf90000,
+		.kernel_la	= 0x80002000,
+		.kernel_ep	= 0x800061b0,
+		.rootfs_ofs	= 0x140000,
 	}, {
 		.id		= "8Mmtk",
 		.fw_max_len	= 0x7a0000,
@@ -172,6 +178,12 @@ static struct board_info boards[] = {
 		.layout_id	= "8Mmtk",
 		.hdr_ver	= 3,
 		.endian_swap	= true,
+	}, {
+		.id		= "ArcherVR200V",
+		.hw_id		= 0x73b70801,
+		.hw_rev		= 0x2f,
+		.layout_id	= "16Mltq",
+		.hdr_ver	= 2,
 	}, {
 		/* terminating entry */
 	}