1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-24 03:30:37 +02:00

backfire: ar71xx: add support for the WNDR3700v2 board (backport of r25118)

git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@26116 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
juhosg 2011-03-13 14:54:01 +00:00
parent 3ee7252632
commit d0e868b3f0
7 changed files with 158 additions and 10 deletions

View File

@ -0,0 +1,69 @@
config interface loopback
option ifname lo
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0
config interface lan
option ifname eth0.1
option type bridge
option proto static
option ipaddr 192.168.1.1
option netmask 255.255.255.0
config interface wan
option ifname eth1
option proto dhcp
config switch
option name rtl8366s
option reset 1
option enable_vlan 1
# Blinkrate: 0=43ms; 1=84ms; 2=120ms; 3=170ms; 4=340ms; 5=670ms
option blinkrate 2
config switch_vlan
option device rtl8366s
option vlan 1
option ports "0 1 2 3 5t"
config switch_port
# Port 1 controls the GREEN configuration of LEDs for
# the switch and the section does not correspond to a real
# switch port.
#
# 0=LED off; 1=Collision/FDX; 2=Link/activity; 3=1000 Mb/s;
# 4=100 Mb/s; 5=10 Mb/s; 6=1000 Mb/s+activity; 7=100 Mb/s+activity;
# 8=10 Mb/s+activity; 9=10/100 Mb/s+activity; 10: Fiber;
# 11: Fault; 12: Link/activity(tx); 13: Link/activity(rx);
# 14: Link (master); 15: separate register
option device rtl8366s
option port 1
option led 6
config switch_port
# Port 2 controls the ORANGE configuration of LEDs for
# the switch and the section does not correspond to a real
# switch port.
#
# See the key above for switch port 1 for the meaning of the
# 'led' setting below.
option device rtl8366s
option port 2
option led 9
config switch_port
# Port 5 controls the configuration of the WAN LED and the
# section does not correspond to a real switch port.
#
# To toggle the use of green or orange LEDs for the WAN port,
# see the LED setting for wndr3700:green:wan in /etc/config/system.
#
# See the key above for switch port 1 for the meaning of the
# 'led' setting below.
option device rtl8366s
option port 5
option led 2

View File

@ -84,7 +84,7 @@ get_status_led() {
tl-wr941nd) tl-wr941nd)
status_led="tl-wr941nd:green:system" status_led="tl-wr941nd:green:system"
;; ;;
wndr3700) wndr3700 | wndr3700v2)
status_led="wndr3700:green:power" status_led="wndr3700:green:power"
;; ;;
wnr2000) wnr2000)

View File

@ -17,6 +17,6 @@ commit system
EOF EOF
} }
if [ "${board}" == "wndr3700" ]; then if [ "${board}" == "wndr3700" -o "${board}" == "wndr3700v2" ]; then
wndr3700_set_wan_led wndr3700_set_wan_led
fi fi

View File

@ -103,6 +103,9 @@ ar71xx_board_name() {
*WNDR3700) *WNDR3700)
name="wndr3700" name="wndr3700"
;; ;;
*WNDR3700v2)
name="wndr3700v2"
;;
*WNR2000) *WNR2000)
name="wnr2000" name="wnr2000"
;; ;;

View File

@ -64,6 +64,7 @@ platform_do_upgrade_combined() {
platform_check_image() { platform_check_image() {
local board=$(ar71xx_board_name) local board=$(ar71xx_board_name)
local magic="$(get_magic_word "$1")" local magic="$(get_magic_word "$1")"
local magic_long="$(get_magic_long "$1")"
[ "$ARGC" -gt 1 ] && return 1 [ "$ARGC" -gt 1 ] && return 1
@ -83,7 +84,14 @@ platform_check_image() {
return 0 return 0
;; ;;
wndr3700) wndr3700)
[ "$magic" != "3337" ] && { [ "$magic_long" != "33373030" ] && {
echo "Invalid image type."
return 1
}
return 0
;;
wndr3700v2)
[ "$magic_long" != "33373031" ] && {
echo "Invalid image type." echo "Invalid image type."
return 1 return 1
} }

View File

@ -93,14 +93,64 @@ static struct mtd_partition wndr3700_partitions[] = {
.mask_flags = MTD_WRITEABLE, .mask_flags = MTD_WRITEABLE,
} }
}; };
static struct mtd_partition wndr3700v2_partitions[] = {
{
.name = "uboot",
.offset = 0,
.size = 0x050000,
.mask_flags = MTD_WRITEABLE,
}, {
.name = "env",
.offset = 0x050000,
.size = 0x020000,
.mask_flags = MTD_WRITEABLE,
}, {
.name = "rootfs",
.offset = 0x070000,
.size = 0xe40000,
}, {
.name = "config",
.offset = 0xeb0000,
.size = 0x010000,
.mask_flags = MTD_WRITEABLE,
}, {
.name = "config_bak",
.offset = 0xec0000,
.size = 0x010000,
.mask_flags = MTD_WRITEABLE,
}, {
.name = "pot",
.offset = 0xed0000,
.size = 0x010000,
.mask_flags = MTD_WRITEABLE,
}, {
.name = "traffic_meter",
.offset = 0xee0000,
.size = 0x010000,
.mask_flags = MTD_WRITEABLE,
}, {
.name = "language",
.offset = 0xef0000,
.size = 0x100000,
.mask_flags = MTD_WRITEABLE,
}, {
.name = "caldata",
.offset = 0xff0000,
.size = 0x010000,
.mask_flags = MTD_WRITEABLE,
}
};
#define wndr3700_num_partitions ARRAY_SIZE(wndr3700_partitions)
#define wndr3700v2_num_partitions ARRAY_SIZE(wndr3700v2_partitions)
#else
#define wndr3700_partitions NULL
#define wndr3700_num_partitions 0
#define wndr3700v2_partitions NULL
#define wndr3700v2_num_partitions 0
#endif /* CONFIG_MTD_PARTITIONS */ #endif /* CONFIG_MTD_PARTITIONS */
static struct flash_platform_data wndr3700_flash_data = { static struct flash_platform_data wndr3700_flash_data;
#ifdef CONFIG_MTD_PARTITIONS
.parts = wndr3700_partitions,
.nr_parts = ARRAY_SIZE(wndr3700_partitions),
#endif
};
static struct gpio_led wndr3700_leds_gpio[] __initdata = { static struct gpio_led wndr3700_leds_gpio[] __initdata = {
{ {
@ -164,7 +214,7 @@ static struct platform_device wndr3700_rtl8366s_device = {
} }
}; };
static void __init wndr3700_setup(void) static void __init wndr3700_common_setup(void)
{ {
u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
@ -213,5 +263,22 @@ static void __init wndr3700_setup(void)
art + WNDR3700_WMAC1_MAC_OFFSET); art + WNDR3700_WMAC1_MAC_OFFSET);
} }
static void __init wndr3700_setup(void)
{
wndr3700_flash_data.parts = wndr3700_partitions,
wndr3700_flash_data.nr_parts = wndr3700_num_partitions,
wndr3700_common_setup();
}
MIPS_MACHINE(AR71XX_MACH_WNDR3700, "WNDR3700", "NETGEAR WNDR3700", MIPS_MACHINE(AR71XX_MACH_WNDR3700, "WNDR3700", "NETGEAR WNDR3700",
wndr3700_setup); wndr3700_setup);
static void __init wndr3700v2_setup(void)
{
wndr3700_flash_data.parts = wndr3700v2_partitions,
wndr3700_flash_data.nr_parts = wndr3700v2_num_partitions,
wndr3700_common_setup();
}
MIPS_MACHINE(AR71XX_MACH_WNDR3700V2, "WNDR3700v2", "NETGEAR WNDR3700v2",
wndr3700v2_setup);

View File

@ -49,6 +49,7 @@ enum ar71xx_mach_type {
AR71XX_MACH_UBNT_ROCKET_M, /* Ubiquiti Rocket M */ AR71XX_MACH_UBNT_ROCKET_M, /* Ubiquiti Rocket M */
AR71XX_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */ AR71XX_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */
AR71XX_MACH_WNDR3700, /* NETGEAR WNDR3700 */ AR71XX_MACH_WNDR3700, /* NETGEAR WNDR3700 */
AR71XX_MACH_WNDR3700V2, /* NETGEAR WNDR3700v2 */
AR71XX_MACH_WNR2000, /* NETGEAR WNR2000 */ AR71XX_MACH_WNR2000, /* NETGEAR WNR2000 */
AR71XX_MACH_WP543, /* Compex WP543 */ AR71XX_MACH_WP543, /* Compex WP543 */
AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */ AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */