diff --git a/include/profiles.mk b/include/profiles.mk
index 2ac433427be4aefefaf2a5933f9160e8a88c508e..dd73ada458e3f45fe141d8c38224a45948f1f733 100644
--- a/include/profiles.mk
+++ b/include/profiles.mk
@@ -22,9 +22,10 @@ $(eval $(call GluonModel,TLWR841,tl-wr841nd-v7-squashfs,tp-link-tl-wr841n-nd-v7)
 $(eval $(call GluonModel,TLWR841,tl-wr841n-v8-squashfs,tp-link-tl-wr841n-nd-v8))
 $(eval $(call GluonModel,TLWR841,tl-wr841n-v9-squashfs,tp-link-tl-wr841n-nd-v9))
 
-# TL-WR842N/ND v1
+# TL-WR842N/ND v1, v2
 $(eval $(call GluonProfile,TLWR842))
 $(eval $(call GluonModel,TLWR842,tl-wr842n-v1-squashfs,tp-link-tl-wr842n-nd-v1))
+$(eval $(call GluonModel,TLWR842,tl-wr842n-v2-squashfs,tp-link-tl-wr842n-nd-v2))
 
 # TL-WR941N/ND v2, v3, v4
 $(eval $(call GluonProfile,TLWR941))
@@ -58,9 +59,10 @@ $(eval $(call GluonModel,TLMR3040,tl-mr3040-v1-squashfs,tp-link-tl-mr3040-v1))
 $(eval $(call GluonProfile,TLMR3220))
 $(eval $(call GluonModel,TLMR3220,tl-mr3220-v1-squashfs,tp-link-tl-mr3220-v1))
 
-# TL-MR3420 v1
+# TL-MR3420 v1, v2
 $(eval $(call GluonProfile,TLMR3420))
 $(eval $(call GluonModel,TLMR3420,tl-mr3420-v1-squashfs,tp-link-tl-mr3420-v1))
+$(eval $(call GluonModel,TLMR3420,tl-mr3420-v2-squashfs,tp-link-tl-mr3420-v2))
 
 ## Ubiquiti (everything)
 $(eval $(call GluonProfile,UBNT))
diff --git a/patches/openwrt/0020-Backport-support-for-TL-WR842N-v2-and-TL-MR3420-v2.patch b/patches/openwrt/0020-Backport-support-for-TL-WR842N-v2-and-TL-MR3420-v2.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b0955be66c3286e9989c1c1498225861153299d4
--- /dev/null
+++ b/patches/openwrt/0020-Backport-support-for-TL-WR842N-v2-and-TL-MR3420-v2.patch
@@ -0,0 +1,449 @@
+From: Matthias Schiffer <mschiffer@universe-factory.net>
+Date: Thu, 1 May 2014 02:26:02 +0200
+Subject: Backport support for TL-WR842N v2 and TL-MR3420 v2
+
+diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
+index 0bf2dd1..0d01119 100755
+--- a/target/linux/ar71xx/base-files/etc/diag.sh
++++ b/target/linux/ar71xx/base-files/etc/diag.sh
+@@ -127,6 +127,7 @@ get_status_led() {
+ 		;;
+ 	tl-mr3220 | \
+ 	tl-mr3420 | \
++	tl-mr3420-v2 | \
+ 	tl-wa901nd | \
+ 	tl-wa901nd-v2 | \
+ 	tl-wdr3500 | \
+@@ -137,6 +138,7 @@ get_status_led() {
+ 	tl-wr841n-v1 | \
+ 	tl-wr841n-v7 | \
+ 	tl-wr841n-v8 | \
++	tl-wr842n-v2 | \
+ 	tl-wr941nd)
+ 		status_led="tp-link:green:system"
+ 		;;
+diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/leds b/target/linux/ar71xx/base-files/etc/uci-defaults/leds
+index 43bc24d..f1ac9ec 100755
+--- a/target/linux/ar71xx/base-files/etc/uci-defaults/leds
++++ b/target/linux/ar71xx/base-files/etc/uci-defaults/leds
+@@ -118,6 +118,16 @@ tl-mr3420 )
+ 	ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
+ 	;;
+ 
++tl-mr3420-v2)
++	ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth0"
++	ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04"
++	ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
++	ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10"
++	ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
++	ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
++	ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
++	;;
++
+ tl-wa901nd)
+ 	ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
+ 	;;
+@@ -172,6 +182,16 @@ tl-wr841n-v9)
+ 	ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
+ 	;;
+ 
++tl-wr842n-v2)
++	ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth0"
++	ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04"
++	ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
++	ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10"
++	ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
++	ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
++	ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
++	;;
++
+ tl-wr941nd | \
+ tl-wr1041n-v2)
+ 	ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
+diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/network b/target/linux/ar71xx/base-files/etc/uci-defaults/network
+index a1dfda0..e38a9b8 100755
+--- a/target/linux/ar71xx/base-files/etc/uci-defaults/network
++++ b/target/linux/ar71xx/base-files/etc/uci-defaults/network
+@@ -128,7 +128,9 @@ tl-wr941nd)
+ 	ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
+ 	;;
+ 
+-tl-wr841n-v8)
++tl-mr3420-v2 |\
++tl-wr841n-v8 |\
++tl-wr842n-v2)
+ 	ucidef_set_interfaces_lan_wan "eth1" "eth0"
+ 	ucidef_add_switch "switch0" "1" "1"
+ 	ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4"
+diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
+index ca174da..11aa31b 100755
+--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
++++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
+@@ -351,6 +351,9 @@ ar71xx_board_detect() {
+ 	*TL-MR3420)
+ 		name="tl-mr3420"
+ 		;;
++	*"TL-MR3420 v2")
++		name="tl-mr3420-v2"
++		;;
+ 	*TL-WA7510N)
+ 		name="tl-wa7510n"
+ 		;;
+@@ -384,6 +387,9 @@ ar71xx_board_detect() {
+ 	*"TL-WR841N/ND v9")
+ 		name="tl-wr841n-v9"
+ 		;;
++	*"TL-WR842N/ND v2")
++		name="tl-wr842n-v2"
++		;;
+ 	*TL-WR941ND)
+ 		name="tl-wr941nd"
+ 		;;
+diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+index 7168b4e..b25df6c 100755
+--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
++++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+@@ -152,6 +152,7 @@ platform_check_image() {
+ 	tl-mr3040 | \
+ 	tl-mr3220 | \
+ 	tl-mr3420 | \
++	tl-mr3420-v2 | \
+ 	tl-wa7510n | \
+ 	tl-wa901nd | \
+ 	tl-wa901nd-v2 | \
+@@ -164,6 +165,7 @@ platform_check_image() {
+ 	tl-wr841n-v7 | \
+ 	tl-wr841n-v8 | \
+ 	tl-wr841n-v9 | \
++	tl-wr842n-v2 | \
+ 	tl-wr941nd | \
+ 	tl-wr1041n-v2 | \
+ 	tl-wr1043nd | \
+diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v8.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v8.c
+index ffaf8d1..0099b15 100644
+--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v8.c
++++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v8.c
+@@ -1,5 +1,5 @@
+ /*
+- *  TP-LINK TL-WR841N/ND v8 board support
++ *  TP-LINK TL-WR841N/ND v8/TL-MR3420 v2 board support
+  *
+  *  Copyright (C) 2012 Gabor Juhos <juhosg@openwrt.org>
+  *
+@@ -8,6 +8,7 @@
+  *  by the Free Software Foundation.
+  */
+ 
++#include <linux/gpio.h>
+ #include <linux/platform_device.h>
+ 
+ #include <asm/mach-ath79/ath79.h>
+@@ -18,6 +19,7 @@
+ #include "dev-gpio-buttons.h"
+ #include "dev-leds-gpio.h"
+ #include "dev-m25p80.h"
++#include "dev-usb.h"
+ #include "dev-wmac.h"
+ #include "machtypes.h"
+ 
+@@ -31,7 +33,10 @@
+ #define TL_WR841NV8_GPIO_LED_SYSTEM	14
+ 
+ #define TL_WR841NV8_GPIO_BTN_RESET	17
+-#define TL_WR841NV8_GPIO_SW_RFKILL	16
++#define TL_WR841NV8_GPIO_SW_RFKILL	16	/* WPS for MR3420 v2 */
++
++#define TL_MR3420V2_GPIO_LED_3G	11
++#define TL_MR3420V2_GPIO_USB_POWER	4
+ 
+ #define TL_WR841NV8_KEYS_POLL_INTERVAL	20	/* msecs */
+ #define TL_WR841NV8_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR841NV8_KEYS_POLL_INTERVAL)
+@@ -78,6 +83,11 @@ static struct gpio_led tl_wr841n_v8_leds_gpio[] __initdata = {
+ 		.name		= "tp-link:green:wlan",
+ 		.gpio		= TL_WR841NV8_GPIO_LED_WLAN,
+ 		.active_low	= 1,
++	}, {
++		/* the 3G LED is only present on the MR3420 v2 */
++		.name		= "tp-link:green:3g",
++		.gpio		= TL_MR3420V2_GPIO_LED_3G,
++		.active_low	= 1,
+ 	},
+ };
+ 
+@@ -99,17 +109,37 @@ static struct gpio_keys_button tl_wr841n_v8_gpio_keys[] __initdata = {
+ 	}
+ };
+ 
+-static void __init tl_wr841n_v8_setup(void)
++static struct gpio_keys_button tl_mr3420v2_gpio_keys[] __initdata = {
++	{
++		.desc		= "Reset button",
++		.type		= EV_KEY,
++		.code		= KEY_RESTART,
++		.debounce_interval = TL_WR841NV8_KEYS_DEBOUNCE_INTERVAL,
++		.gpio		= TL_WR841NV8_GPIO_BTN_RESET,
++		.active_low	= 1,
++	}, {
++		.desc		= "WPS",
++		.type		= EV_KEY,
++		.code		= KEY_WPS_BUTTON,
++		.debounce_interval = TL_WR841NV8_KEYS_DEBOUNCE_INTERVAL,
++		.gpio		= TL_WR841NV8_GPIO_SW_RFKILL,
++		.active_low	= 0,
++	}
++};
++
++static void __init tl_ap123_setup(void)
+ {
+ 	u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
+ 	u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
+ 
+-	ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr841n_v8_leds_gpio),
+-				 tl_wr841n_v8_leds_gpio);
++	/* Disable JTAG, enabling GPIOs 0-3 */
++	/* Configure OBS4 line, for GPIO 4*/
++	ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE,
++				 AR934X_GPIO_FUNC_CLK_OBS4_EN);
+ 
+-	ath79_register_gpio_keys_polled(1, TL_WR841NV8_KEYS_POLL_INTERVAL,
+-					ARRAY_SIZE(tl_wr841n_v8_gpio_keys),
+-					tl_wr841n_v8_gpio_keys);
++	/* config gpio4 as normal gpio function */
++	ath79_gpio_output_select(TL_MR3420V2_GPIO_USB_POWER,
++				 AR934X_GPIO_OUT_GPIO);
+ 
+ 	ath79_register_m25p80(&tl_wr841n_v8_flash_data);
+ 
+@@ -135,5 +165,61 @@ static void __init tl_wr841n_v8_setup(void)
+ 	ath79_register_wmac(ee, mac);
+ }
+ 
++static void __init tl_wr841n_v8_setup(void)
++{
++	tl_ap123_setup();
++
++	ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr841n_v8_leds_gpio) - 1,
++				 tl_wr841n_v8_leds_gpio);
++
++	ath79_register_gpio_keys_polled(1, TL_WR841NV8_KEYS_POLL_INTERVAL,
++					ARRAY_SIZE(tl_wr841n_v8_gpio_keys),
++					tl_wr841n_v8_gpio_keys);
++}
++
+ MIPS_MACHINE(ATH79_MACH_TL_WR841N_V8, "TL-WR841N-v8", "TP-LINK TL-WR841N/ND v8",
+ 	     tl_wr841n_v8_setup);
++
++
++static void __init tl_wr842n_v2_setup(void)
++{
++	tl_ap123_setup();
++
++	ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr841n_v8_leds_gpio),
++				 tl_wr841n_v8_leds_gpio);
++
++	ath79_register_gpio_keys_polled(1, TL_WR841NV8_KEYS_POLL_INTERVAL,
++					ARRAY_SIZE(tl_wr841n_v8_gpio_keys),
++					tl_wr841n_v8_gpio_keys);
++
++	gpio_request_one(TL_MR3420V2_GPIO_USB_POWER,
++			 GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
++			 "USB power");
++
++	ath79_register_usb();
++}
++
++MIPS_MACHINE(ATH79_MACH_TL_WR842N_V2, "TL-WR842N-v2", "TP-LINK TL-WR842N/ND v2",
++	     tl_wr842n_v2_setup);
++
++static void __init tl_mr3420v2_setup(void)
++{
++	tl_ap123_setup();
++
++	ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr841n_v8_leds_gpio),
++				tl_wr841n_v8_leds_gpio);
++
++	ath79_register_gpio_keys_polled(1, TL_WR841NV8_KEYS_POLL_INTERVAL,
++				ARRAY_SIZE(tl_mr3420v2_gpio_keys),
++				tl_mr3420v2_gpio_keys);
++
++	/* enable power for the USB port */
++	gpio_request_one(TL_MR3420V2_GPIO_USB_POWER,
++			 GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
++			 "USB power");
++
++	ath79_register_usb();
++}
++
++MIPS_MACHINE(ATH79_MACH_TL_MR3420_V2, "TL-MR3420-v2", "TP-LINK TL-MR3420 v2",
++	     tl_mr3420v2_setup);
+diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
+index c270f73..a055521 100644
+--- a/target/linux/ar71xx/image/Makefile
++++ b/target/linux/ar71xx/image/Makefile
+@@ -853,7 +853,7 @@ $(eval $(call SingleProfile,Planex,$(fs_64k),MZKW300NH,mzk-w300nh,MZK-W300NH,tty
+ $(eval $(call SingleProfile,TPLINKOLD,$(fs_squash),TLWR841NV15,tl-wr841nd-v1.5,TL-WR841N-v1.5,ttyS0,115200,0x08410002,2,4M))
+ 
+ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLMR3220,tl-mr3220-v1,TL-MR3220,ttyS0,115200,0x32200001,1,4M))
+-$(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLMR3420,tl-mr3420-v1,TL-MR3420,ttyS0,115200,0x34200001,1,4M))
++$(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLMR3420V1,tl-mr3420-v1,TL-MR3420,ttyS0,115200,0x34200001,1,4M))
+ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWA701,tl-wa701n-v1,TL-WA901ND,ttyS0,115200,0x07010001,1,4M))
+ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWA7510NV1,tl-wa7510n,TL-WA7510N,ttyS0,115200,0x75100001,1,4M))
+ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWA901NV1,tl-wa901nd-v1,TL-WA901ND,ttyS0,115200,0x09010001,1,4M))
+@@ -866,7 +866,7 @@ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR743,tl-wr743nd-v1,TL-WR741ND
+ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR841NV3,tl-wr841nd-v3,TL-WR941ND,ttyS0,115200,0x08410003,3,4M))
+ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR841NV5,tl-wr841nd-v5,TL-WR741ND,ttyS0,115200,0x08410005,1,4M))
+ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR841NV7,tl-wr841nd-v7,TL-WR841N-v7,ttyS0,115200,0x08410007,1,4M))
+-$(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR842,tl-wr842n-v1,TL-MR3420,ttyS0,115200,0x08420001,1,8M))
++$(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR842V1,tl-wr842n-v1,TL-MR3420,ttyS0,115200,0x08420001,1,8M))
+ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR941NV2,tl-wr941nd-v2,TL-WR941ND,ttyS0,115200,0x09410002,2,4M))
+ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR941NV3,tl-wr941nd-v3,TL-WR941ND,ttyS0,115200,0x09410002,2,4M))
+ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR941NV4,tl-wr941nd-v4,TL-WR741ND,ttyS0,115200,0x09410004,1,4M))
+@@ -875,11 +875,13 @@ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR1043,tl-wr1043nd-v1,TL-WR104
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR11U,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma))
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3020,tl-mr3020-v1,TL-MR3020,ttyATH0,115200,0x30200001,1,4Mlzma))
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3040,tl-mr3040-v1,TL-MR3040,ttyATH0,115200,0x30400001,1,4Mlzma))
++$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3420V2,tl-mr3420-v2,TL-MR3420-v2,ttyS0,115200,0x34200002,1,4Mlzma))
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,4Mlzma))
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR740NV4,tl-wr740n-v4,TL-WR741ND-v4,ttyATH0,115200,0x07400004,1,4Mlzma))
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR741NV4,tl-wr741nd-v4,TL-WR741ND-v4,ttyATH0,115200,0x07410004,1,4Mlzma))
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR841NV8,tl-wr841n-v8,TL-WR841N-v8,ttyS0,115200,0x08410008,1,4Mlzma))
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR841NV9,tl-wr841n-v9,TL-WR841N-v9,ttyS0,115200,0x08410009,1,4Mlzma))
++$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR842V2,tl-wr842n-v2,TL-WR842N-v2,ttyS0,115200,0x8420002,1,8Mlzma))
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR1041,tl-wr1041n-v2,TL-WR1041N-v2,ttyS0,115200,0x10410002,1,4Mlzma))
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR2543,tl-wr2543-v1,TL-WR2543N,ttyS0,115200,0x25430001,1,8Mlzma,-v 3.13.99))
+ $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWDR3500V1,tl-wdr3500-v1,TL-WDR3500,ttyS0,115200,0x35000001,1,8Mlzma))
+@@ -921,11 +923,13 @@ $(eval $(call SingleProfile,ZyXEL,$(fs_64k),NBG_460N_550N_550NH,nbg460n_550n_550
+ $(eval $(call MultiProfile,AP121,AP121_2M AP121_4M))
+ $(eval $(call MultiProfile,EWDORIN, EWDORINAP EWDORINRT))
+ $(eval $(call MultiProfile,TEW652BRP,TEW652BRP_FW TEW652BRP_RECOVERY))
++$(eval $(call MultiProfile,TLMR3420,TLMR3420V1 TLMR3420V2))
+ $(eval $(call MultiProfile,TLWA901,TLWA901NV1 TLWA901NV2))
+ $(eval $(call MultiProfile,TLWA7510,TLWA7510NV1))
+ $(eval $(call MultiProfile,TLWR740,TLWR740NV1 TLWR740NV3 TLWR740NV4))
+ $(eval $(call MultiProfile,TLWR741,TLWR741NV1 TLWR741NV2 TLWR741NV4))
+ $(eval $(call MultiProfile,TLWR841,TLWR841NV15 TLWR841NV3 TLWR841NV5 TLWR841NV7 TLWR841NV8 TLWR841NV9))
++$(eval $(call MultiProfile,TLWR842,TLWR842V1 TLWR842V2))
+ $(eval $(call MultiProfile,TLWR941,TLWR941NV2 TLWR941NV3 TLWR941NV4))
+ $(eval $(call MultiProfile,TLWDR4300,TLWDR3500V1 TLWDR3600V1 TLWDR4300V1 TLWDR4310V1))
+ $(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71 UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTUNIFI UBNTUNIFIOUTDOOR))
+diff --git a/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch
+index 0230908..6d67f5f 100644
+--- a/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch
++++ b/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch
+@@ -1,6 +1,6 @@
+ --- a/arch/mips/ath79/machtypes.h
+ +++ b/arch/mips/ath79/machtypes.h
+-@@ -16,18 +16,102 @@
++@@ -16,18 +16,104 @@
+  
+  enum ath79_mach_type {
+  	ATH79_MACH_GENERIC = 0,
+@@ -61,6 +61,7 @@
+ +	ATH79_MACH_TL_MR3040,		/* TP-LINK TL-MR3040 */
+ +	ATH79_MACH_TL_MR3220,		/* TP-LINK TL-MR3220 */
+ +	ATH79_MACH_TL_MR3420,		/* TP-LINK TL-MR3420 */
+++	ATH79_MACH_TL_MR3420_V2,	/* TP-LINK TL-MR3420 v2 */
+ +	ATH79_MACH_TL_WA901ND,		/* TP-LINK TL-WA901ND */
+ +	ATH79_MACH_TL_WA901ND_V2,	/* TP-LINK TL-WA901ND v2 */
+ +	ATH79_MACH_TL_WDR4300,		/* TP-LINK TL-WDR4300 */
+@@ -73,6 +74,7 @@
+ +	ATH79_MACH_TL_WR841N_V1,	/* TP-LINK TL-WR841N v1 */
+ +	ATH79_MACH_TL_WR841N_V7,	/* TP-LINK TL-WR841N/ND v7 */
+ +	ATH79_MACH_TL_WR841N_V8,	/* TP-LINK TL-WR841N/ND v8 */
+++	ATH79_MACH_TL_WR842N_V2,	/* TP-LINK TL-WR842N/ND v2 */
+ +	ATH79_MACH_TL_WR941ND,		/* TP-LINK TL-WR941ND */
+  	ATH79_MACH_UBNT_AIRROUTER,	/* Ubiquiti AirRouter */
+  	ATH79_MACH_UBNT_BULLET_M,	/* Ubiquiti Bullet M */
+diff --git a/target/linux/ar71xx/patches-3.3/612-MIPS-ath79-TL-WA7510N-v1-support.patch b/target/linux/ar71xx/patches-3.3/612-MIPS-ath79-TL-WA7510N-v1-support.patch
+index 6bd58b0..dba879e 100644
+--- a/target/linux/ar71xx/patches-3.3/612-MIPS-ath79-TL-WA7510N-v1-support.patch
++++ b/target/linux/ar71xx/patches-3.3/612-MIPS-ath79-TL-WA7510N-v1-support.patch
+@@ -1,9 +1,9 @@
+ --- a/arch/mips/ath79/machtypes.h
+ +++ b/arch/mips/ath79/machtypes.h
+-@@ -74,6 +74,7 @@ enum ath79_mach_type {
+- 	ATH79_MACH_TL_MR3040,		/* TP-LINK TL-MR3040 */
++@@ -75,6 +75,7 @@ enum ath79_mach_type {
+  	ATH79_MACH_TL_MR3220,		/* TP-LINK TL-MR3220 */
+  	ATH79_MACH_TL_MR3420,		/* TP-LINK TL-MR3420 */
++ 	ATH79_MACH_TL_MR3420_V2,	/* TP-LINK TL-MR3420 v2 */
+ +	ATH79_MACH_TL_WA7510N_V1,	/* TP-LINK TL-WA7510N v1*/
+  	ATH79_MACH_TL_WA901ND,		/* TP-LINK TL-WA901ND */
+  	ATH79_MACH_TL_WA901ND_V2,	/* TP-LINK TL-WA901ND v2 */
+diff --git a/target/linux/ar71xx/patches-3.3/613-MIPS-ath79-add-TL-WDR3500-support.patch b/target/linux/ar71xx/patches-3.3/613-MIPS-ath79-add-TL-WDR3500-support.patch
+index 0a2c3bd..059089b 100644
+--- a/target/linux/ar71xx/patches-3.3/613-MIPS-ath79-add-TL-WDR3500-support.patch
++++ b/target/linux/ar71xx/patches-3.3/613-MIPS-ath79-add-TL-WDR3500-support.patch
+@@ -1,6 +1,6 @@
+ --- a/arch/mips/ath79/machtypes.h
+ +++ b/arch/mips/ath79/machtypes.h
+-@@ -84,6 +84,7 @@ enum ath79_mach_type {
++@@ -78,6 +78,7 @@ enum ath79_mach_type {
+  	ATH79_MACH_TL_WA7510N_V1,	/* TP-LINK TL-WA7510N v1*/
+  	ATH79_MACH_TL_WA901ND,		/* TP-LINK TL-WA901ND */
+  	ATH79_MACH_TL_WA901ND_V2,	/* TP-LINK TL-WA901ND v2 */
+@@ -10,7 +10,7 @@
+  	ATH79_MACH_TL_WR1043ND,		/* TP-LINK TL-WR1043ND */
+ --- a/arch/mips/ath79/Kconfig
+ +++ b/arch/mips/ath79/Kconfig
+-@@ -514,6 +514,17 @@ config ATH79_MACH_TL_WA901ND_V2
++@@ -469,6 +469,17 @@ config ATH79_MACH_TL_WA901ND_V2
+  	select ATH79_DEV_M25P80
+  	select ATH79_DEV_WMAC
+  
+@@ -30,7 +30,7 @@
+  	select SOC_AR934X
+ --- a/arch/mips/ath79/Makefile
+ +++ b/arch/mips/ath79/Makefile
+-@@ -81,6 +81,7 @@ obj-$(CONFIG_ATH79_MACH_TL_MR3020)	+= ma
++@@ -78,6 +78,7 @@ obj-$(CONFIG_ATH79_MACH_TL_MR3020)	+= ma
+  obj-$(CONFIG_ATH79_MACH_TL_MR3X20)	+= mach-tl-mr3x20.o
+  obj-$(CONFIG_ATH79_MACH_TL_WA901ND)	+= mach-tl-wa901nd.o
+  obj-$(CONFIG_ATH79_MACH_TL_WA901ND_V2)	+= mach-tl-wa901nd-v2.o
+diff --git a/target/linux/ar71xx/patches-3.3/613-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch b/target/linux/ar71xx/patches-3.3/613-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
+index 8a1c770..9766afe 100644
+--- a/target/linux/ar71xx/patches-3.3/613-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
++++ b/target/linux/ar71xx/patches-3.3/613-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
+@@ -56,7 +56,7 @@
+ +	     ubnt_unifi_outdoor_setup);
+ --- a/arch/mips/ath79/machtypes.h
+ +++ b/arch/mips/ath79/machtypes.h
+-@@ -97,6 +97,7 @@ enum ath79_mach_type {
++@@ -100,6 +100,7 @@ enum ath79_mach_type {
+  	ATH79_MACH_UBNT_RSPRO,		/* Ubiquiti RouterStation Pro */
+  	ATH79_MACH_UBNT_RS,		/* Ubiquiti RouterStation */
+  	ATH79_MACH_UBNT_UNIFI, 		/* Ubiquiti Unifi */
+diff --git a/target/linux/ar71xx/patches-3.3/705-MIPS-ath79-add-support-for-QCA953x-SoC.patch b/target/linux/ar71xx/patches-3.3/705-MIPS-ath79-add-support-for-QCA953x-SoC.patch
+index bd08685..d111353 100644
+--- a/target/linux/ar71xx/patches-3.3/705-MIPS-ath79-add-support-for-QCA953x-SoC.patch
++++ b/target/linux/ar71xx/patches-3.3/705-MIPS-ath79-add-support-for-QCA953x-SoC.patch
+@@ -22,7 +22,7 @@ some bits' meanings are slightly different.
+ 
+ --- a/arch/mips/ath79/Kconfig
+ +++ b/arch/mips/ath79/Kconfig
+-@@ -698,6 +698,10 @@ config SOC_AR934X
++@@ -688,6 +688,10 @@ config SOC_AR934X
+  	select PCI_AR724X if PCI
+  	def_bool n
+  
+@@ -33,7 +33,7 @@ some bits' meanings are slightly different.
+  config SOC_QCA955X
+  	select USB_ARCH_HAS_EHCI
+  	select HW_HAS_PCI
+-@@ -741,7 +745,7 @@ config ATH79_DEV_USB
++@@ -731,7 +735,7 @@ config ATH79_DEV_USB
+  	def_bool n
+  
+  config ATH79_DEV_WMAC
+diff --git a/target/linux/ar71xx/patches-3.3/706-MIPS-ath79-TL-WR841v9-support.patch b/target/linux/ar71xx/patches-3.3/706-MIPS-ath79-TL-WR841v9-support.patch
+index ebc82c6..dcbb112 100644
+--- a/target/linux/ar71xx/patches-3.3/706-MIPS-ath79-TL-WR841v9-support.patch
++++ b/target/linux/ar71xx/patches-3.3/706-MIPS-ath79-TL-WR841v9-support.patch
+@@ -33,6 +33,6 @@
+  	ATH79_MACH_TL_WR841N_V7,	/* TP-LINK TL-WR841N/ND v7 */
+  	ATH79_MACH_TL_WR841N_V8,	/* TP-LINK TL-WR841N/ND v8 */
+ +	ATH79_MACH_TL_WR841N_V9,	/* TP-LINK TL-WR841N/ND v9 */
++ 	ATH79_MACH_TL_WR842N_V2,	/* TP-LINK TL-WR842N/ND v2 */
+  	ATH79_MACH_TL_WR941ND,		/* TP-LINK TL-WR941ND */
+  	ATH79_MACH_UBNT_AIRROUTER,	/* Ubiquiti AirRouter */
+- 	ATH79_MACH_UBNT_BULLET_M,	/* Ubiquiti Bullet M */