diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index 444e6fff7fa6cd6229ee3b27fdfe5347ec83cbcb..af6107b4895fa5e7b8cb9b086fb12010e40e9b63 100755
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -281,7 +281,8 @@ get_status_led() {
 	wndr4300 | \
 	wnr2000 | \
 	wnr2200 |\
-	wnr612-v2)
+	wnr612-v2 |\
+	wnr1000-v2)
 		status_led="netgear:green:power"
 		;;
 	wp543)
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
index 5f1704f4b8889d800fae7f0f0c051f50d2ca0f45..a223ae8fe52d3b5930e02b1b2a261c905d7068a3 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
@@ -223,7 +223,8 @@ tl-wr842n-v2 |\
 wnr2000-v3 |\
 wnr2000-v4 |\
 wnr2200 |\
-wnr612-v2)
+wnr612-v2 |\
+wnr1000-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/etc/uci-defaults/04_led_migration b/target/linux/ar71xx/base-files/etc/uci-defaults/04_led_migration
index 1cef8b993772a36d2df7dd4d69a6c94a7f82c8ca..d578f59f7c13c75396eed151a274752214992a98 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/04_led_migration
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/04_led_migration
@@ -77,6 +77,10 @@ wnr612-v2)
 	migrate_leds "wnr612v2:=netgear:"
 	;;
 
+wnr1000-v2)
+	migrate_leds "wnr1000v2:=netgear:"
+	;;
+
 *)
 	;;
 esac
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 14ee68b8544886a9be9b81890e6b87e2b1244d8e..02872de1457d8a14bcf762c55f523b692dcb9256 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -780,6 +780,9 @@ ar71xx_board_detect() {
 	*"WNR612 V2")
 		name="wnr612-v2"
 		;;
+	*"WNR1000 V2")
+		name="wnr1000-v2"
+		;;
 	*WRT160NL)
 		name="wrt160nl"
 		;;
diff --git a/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx b/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx
index a9a8794c77ea8ae23bf6ebf11f12f9793c4e5b53..f11ea8cb32cd54b463ff306003f92c2a0255a35b 100644
--- a/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx
+++ b/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx
@@ -38,6 +38,7 @@ set_preinit_iface() {
 	wnr2000-v3 |\
 	wnr2200 |\
 	wnr612-v2 |\
+	wnr1000-v2 |\
 	wpe72)
 		ifname=eth1
 		;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 391299f38ae521dda7de69333eaea0e2cb737822..bc6866da1997cbf820b3fcdd79d0cb42b74c962a 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -379,7 +379,8 @@ platform_check_image() {
 		;;
 	wndr3700 | \
 	wnr2000-v3 | \
-	wnr612-v2)
+	wnr612-v2 | \
+	wnr1000-v2)
 		local hw_magic
 
 		hw_magic="$(ar71xx_get_mtd_part_magic firmware)"
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2000-v3.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2000-v3.c
index 6acd991eb6e936e0715fe8857fda61daeb3cd6f8..2e14782200740072a4e9c93e53e8adbbb19ce359 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2000-v3.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2000-v3.c
@@ -1,5 +1,5 @@
 /*
- *  NETGEAR WNR2000v3 board support
+ *  NETGEAR WNR2000v3/WNR612v2/WNR1000v2 board support
  *
  *  Copytight (C) 2013 Mathieu Olivari <mathieu.olivari@gmail.com>
  *  Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
@@ -31,6 +31,9 @@
 
 #define WNR612V2_GPIO_LED_PWR_GREEN	11
 
+#define WNR1000V2_GPIO_LED_PWR_AMBER	1
+#define WNR1000V2_GPIO_LED_PWR_GREEN	11
+
 #define WNR2000V3_KEYS_POLL_INTERVAL	20	/* msecs */
 #define WNR2000V3_KEYS_DEBOUNCE_INTERVAL	(3 * WNR2000V3_KEYS_POLL_INTERVAL)
 
@@ -58,6 +61,18 @@ static struct gpio_led wnr612v2_leds_gpio[] __initdata = {
 	}
 };
 
+static struct gpio_led wnr1000v2_leds_gpio[] __initdata = {
+	{
+		.name		= "netgear:green:power",
+		.gpio		= WNR1000V2_GPIO_LED_PWR_GREEN,
+		.active_low	= 1,
+	}, {
+		.name		= "netgear:amber:power",
+		.gpio		= WNR1000V2_GPIO_LED_PWR_AMBER,
+		.active_low	= 1,
+	}
+};
+
 static struct gpio_keys_button wnr2000v3_gpio_keys[] __initdata = {
 	{
 		.desc		= "wps",
@@ -113,3 +128,13 @@ static void __init wnr612v2_setup(void)
 }
 
 MIPS_MACHINE(ATH79_MACH_WNR612_V2, "WNR612V2", "NETGEAR WNR612 V2", wnr612v2_setup);
+
+static void __init wnr1000v2_setup(void)
+{
+	wnr_common_setup();
+
+	ath79_register_leds_gpio(-1, ARRAY_SIZE(wnr1000v2_leds_gpio),
+				 wnr1000v2_leds_gpio);
+}
+
+MIPS_MACHINE(ATH79_MACH_WNR1000_V2, "WNR1000V2", "NETGEAR WNR1000 V2", wnr1000v2_setup);
diff --git a/target/linux/ar71xx/generic/profiles/netgear.mk b/target/linux/ar71xx/generic/profiles/netgear.mk
index e8a2a3fbe63f6222b0bfc546a696a977f1565b31..16b1087635df49e1c2cb61ec47675cdfa27de5b4 100644
--- a/target/linux/ar71xx/generic/profiles/netgear.mk
+++ b/target/linux/ar71xx/generic/profiles/netgear.mk
@@ -62,6 +62,17 @@ endef
 $(eval $(call Profile,WNR612V2))
 
 
+define Profile/WNR1000V2
+	NAME:=NETGEAR WNR1000V2
+endef
+
+define Profile/WNR1000V2/Description
+	Package set optimized for the NETGEAR WNR1000V2
+endef
+
+$(eval $(call Profile,WNR1000V2))
+
+
 define Profile/WNR2200
 	NAME:=NETGEAR WNR2200
 endef
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index ec6330f1ef94792c2a1af21d1694024d45f13204..f7b8381aa422e65b9076a4df390118bed9dd1a56 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -1323,6 +1323,8 @@ $(eval $(call SingleProfile,NetgearLzma,64kraw,WNR2000V4,wnr2000v4,WNR2000V4,tty
 $(eval $(call SingleProfile,Netgear,64kraw,WNR2200,wnr2200,WNR2200,ttyS0,115200,$$(wnr2200_mtdlayout),0x32323030,WNR2200,"" NA,))
 $(eval $(call SingleProfile,Netgear,64kraw,REALWNR612V2,wnr612v2,WNR612V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x32303631,WNR612V2,"",))
 $(eval $(call SingleProfile,Netgear,64kraw,N150R,n150r,WNR612V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x32303631,N150R,"",))
+$(eval $(call SingleProfile,Netgear,64kraw,REALWNR1000V2,wnr1000v2,WNR1000V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x31303031,WNR1000V2,"",))
+$(eval $(call SingleProfile,Netgear,64kraw,WNR1000V2_VC,wnr1000v2-vc,WNR1000V2,ttyS0,115200,$$(wnr2000v3_mtdlayout),0x31303030,WNR1000V2-VC,"",))
 
 $(eval $(call SingleProfile,OpenMesh,squashfs-only,OM2P,om2p,,,,OM2P))
 $(eval $(call SingleProfile,OpenMesh,squashfs-only,OM5P,om5p,,,,OM5P))
@@ -1494,6 +1496,7 @@ $(eval $(call MultiProfile,TLWDR4300,TLWDR3500V1 TLWDR3600V1 TLWDR4300V1 TLWDR43
 $(eval $(call MultiProfile,TUBE2H,TUBE2H8M TUBE2H16M))
 $(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71 UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTNANOMXW UBNTLOCOXW UBNTUNIFI UBNTUNIFIOUTDOOR UBNTUNIFIOUTDOORPLUS UAPPRO UBNTAIRGW))
 $(eval $(call MultiProfile,WNR612V2,REALWNR612V2 N150R))
+$(eval $(call MultiProfile,WNR1000V2,REALWNR1000V2 WNR1000V2_VC))
 $(eval $(call MultiProfile,WP543,WP543_2M WP543_4M WP543_8M WP543_16M))
 $(eval $(call MultiProfile,WPE72,WPE72_4M WPE72_8M WPE72_16M))
 
diff --git a/target/linux/ar71xx/patches-3.14/617-MIPS-ath79-WNR1000v2-support.patch b/target/linux/ar71xx/patches-3.14/617-MIPS-ath79-WNR1000v2-support.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2f4aabec802b2d3e2391e11db9fdc0fb926500ec
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.14/617-MIPS-ath79-WNR1000v2-support.patch
@@ -0,0 +1,21 @@
+--- a/arch/mips/ath79/Kconfig
++++ b/arch/mips/ath79/Kconfig
+@@ -567,7 +567,7 @@ config ATH79_MACH_WNR2000
+ 	select ATH79_DEV_WMAC
+ 
+ config ATH79_MACH_WNR2000_V3
+-	bool "NETGEAR WNR2000 V3/WNR612 v2 board support"
++	bool "NETGEAR WNR2000 V3/WNR612 v2/WNR1000 v2 board support"
+ 	select SOC_AR724X
+ 	select ATH79_DEV_AP9X_PCI if PCI
+ 	select ATH79_DEV_ETH
+--- a/arch/mips/ath79/machtypes.h
++++ b/arch/mips/ath79/machtypes.h
+@@ -173,6 +173,7 @@ enum ath79_mach_type {
+ 	ATH79_MACH_WNR2000_V3,		/* NETGEAR WNR2000 v3 */
+ 	ATH79_MACH_WNR2200,		/* NETGEAR WNR2200 */
+ 	ATH79_MACH_WNR612_V2,		/* NETGEAR WNR612 v2 */
++	ATH79_MACH_WNR1000_V2,		/* NETGEAR WNR1000 v2 */
+ 	ATH79_MACH_WP543,		/* Compex WP543 */
+ 	ATH79_MACH_WPE72,		/* Compex WPE72 */
+ 	ATH79_MACH_WRT160NL,		/* Linksys WRT160NL */
diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
index 7dad63c9bbbe8601ba503272e891cfa25325864e..1df0ac1ae17e069de91dda8e2f1b6d3f7a79350c 100644
--- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
+++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
@@ -233,6 +233,8 @@ static struct mtd_part_parser uimage_generic_parser = {
 #define FW_MAGIC_WNR2000V4	0x32303034
 #define FW_MAGIC_WNR2200	0x32323030
 #define FW_MAGIC_WNR612V2	0x32303631
+#define FW_MAGIC_WNR1000V2	0x31303031
+#define FW_MAGIC_WNR1000V2_VC	0x31303030
 #define FW_MAGIC_WNDR3700	0x33373030
 #define FW_MAGIC_WNDR3700V2	0x33373031
 
@@ -241,6 +243,8 @@ static bool uimage_verify_wndr3700(struct uimage_header *header)
 	uint8_t expected_type = IH_TYPE_FILESYSTEM;
 	switch be32_to_cpu(header->ih_magic) {
 	case FW_MAGIC_WNR612V2:
+	case FW_MAGIC_WNR1000V2:
+	case FW_MAGIC_WNR1000V2_VC:
 	case FW_MAGIC_WNR2000V3:
 	case FW_MAGIC_WNR2200:
 	case FW_MAGIC_WNDR3700: