summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2015-01-30 08:06:40 +0000
committerJohn Crispin <john@openwrt.org>2015-01-30 08:06:40 +0000
commit31fd66f808e7ea16cacef362877139b7e0e8ac7d (patch)
tree1af798dc75a1e7c20a97cc3b165a4bcf95330eab /target
parentb86545c86dbb407b3d27f20d56fbaad3154c0d75 (diff)
downloadmaster-31e0f0ae-31fd66f808e7ea16cacef362877139b7e0e8ac7d.tar.gz
master-31e0f0ae-31fd66f808e7ea16cacef362877139b7e0e8ac7d.tar.bz2
master-31e0f0ae-31fd66f808e7ea16cacef362877139b7e0e8ac7d.zip
ar71xx: add Netgear WNR1000v2/WNR1000v2-VC support (#18633)
The board is already supported by OpenWrt. WNR1000v2/WNR1000v2-VC are pretty much the same as WNR2000v3/WNR612v2, therefore the same initialization code and flash layout is used. Signed-off-by: Ștefan Rusu <saltwaterc@gmail.com> Tested-by: Douglas Fraser <1dsfraser@gmail.com> SVN-Revision: 44221
Diffstat (limited to 'target')
-rwxr-xr-xtarget/linux/ar71xx/base-files/etc/diag.sh3
-rwxr-xr-xtarget/linux/ar71xx/base-files/etc/uci-defaults/02_network3
-rwxr-xr-xtarget/linux/ar71xx/base-files/etc/uci-defaults/04_led_migration4
-rwxr-xr-xtarget/linux/ar71xx/base-files/lib/ar71xx.sh3
-rw-r--r--target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx1
-rwxr-xr-xtarget/linux/ar71xx/base-files/lib/upgrade/platform.sh3
-rw-r--r--target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2000-v3.c27
-rw-r--r--target/linux/ar71xx/generic/profiles/netgear.mk11
-rw-r--r--target/linux/ar71xx/image/Makefile3
-rw-r--r--target/linux/ar71xx/patches-3.14/617-MIPS-ath79-WNR1000v2-support.patch21
-rw-r--r--target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c4
11 files changed, 79 insertions, 4 deletions
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index 444e6fff7f..af6107b489 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 5f1704f4b8..a223ae8fe5 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 1cef8b9937..d578f59f7c 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 14ee68b854..02872de145 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 a9a8794c77..f11ea8cb32 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 391299f38a..bc6866da19 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 6acd991eb6..2e14782200 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 e8a2a3fbe6..16b1087635 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 ec6330f1ef..f7b8381aa4 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 0000000000..2f4aabec80
--- /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 7dad63c9bb..1df0ac1ae1 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: