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
This commit is contained in:
parent
b86545c86d
commit
31fd66f808
@ -281,7 +281,8 @@ get_status_led() {
|
||||
wndr4300 | \
|
||||
wnr2000 | \
|
||||
wnr2200 |\
|
||||
wnr612-v2)
|
||||
wnr612-v2 |\
|
||||
wnr1000-v2)
|
||||
status_led="netgear:green:power"
|
||||
;;
|
||||
wp543)
|
||||
|
@ -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"
|
||||
|
@ -77,6 +77,10 @@ wnr612-v2)
|
||||
migrate_leds "wnr612v2:=netgear:"
|
||||
;;
|
||||
|
||||
wnr1000-v2)
|
||||
migrate_leds "wnr1000v2:=netgear:"
|
||||
;;
|
||||
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
@ -780,6 +780,9 @@ ar71xx_board_detect() {
|
||||
*"WNR612 V2")
|
||||
name="wnr612-v2"
|
||||
;;
|
||||
*"WNR1000 V2")
|
||||
name="wnr1000-v2"
|
||||
;;
|
||||
*WRT160NL)
|
||||
name="wrt160nl"
|
||||
;;
|
||||
|
@ -38,6 +38,7 @@ set_preinit_iface() {
|
||||
wnr2000-v3 |\
|
||||
wnr2200 |\
|
||||
wnr612-v2 |\
|
||||
wnr1000-v2 |\
|
||||
wpe72)
|
||||
ifname=eth1
|
||||
;;
|
||||
|
@ -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)"
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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 */
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user