aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-10-14 00:14:59 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-10-14 00:14:59 +0000
commit1a956f19213d8898480d5683548315f146055a78 (patch)
treed2aef034212cd246824546b044d381fd663c1ca5
parent39d45d2bfca35e07dab7550154033ae62ea250bc (diff)
downloadupstream-1a956f19213d8898480d5683548315f146055a78.tar.gz
upstream-1a956f19213d8898480d5683548315f146055a78.tar.bz2
upstream-1a956f19213d8898480d5683548315f146055a78.zip
ar71xx: use the new ar7240 switch driver on the DIR-600-A1 as well (fixes #7563)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23432 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/ar71xx/base-files/etc/defconfig/dir-600-a1/network14
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-600-a1.c19
2 files changed, 27 insertions, 6 deletions
diff --git a/target/linux/ar71xx/base-files/etc/defconfig/dir-600-a1/network b/target/linux/ar71xx/base-files/etc/defconfig/dir-600-a1/network
index 2108d3ae8e..de201bf5ec 100644
--- a/target/linux/ar71xx/base-files/etc/defconfig/dir-600-a1/network
+++ b/target/linux/ar71xx/base-files/etc/defconfig/dir-600-a1/network
@@ -4,12 +4,8 @@ config interface loopback
option ipaddr 127.0.0.1
option netmask 255.0.0.0
-config interface eth
- option ifname eth0
- option proto none
-
config interface lan
- option ifname 'lan1 lan2 lan3 lan4'
+ option ifname eth0
option type bridge
option proto static
option ipaddr 192.168.1.1
@@ -18,3 +14,11 @@ config interface lan
config interface wan
option ifname eth1
option proto dhcp
+
+config switch eth0
+ option enable_vlan 1
+
+config switch_vlan
+ option device eth0
+ option vlan 1
+ option ports "0 1 2 3 4"
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-600-a1.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-600-a1.c
index 438d19468d..5c36402e34 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-600-a1.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-600-a1.c
@@ -133,7 +133,24 @@ static void __init dir_600_a1_setup(void)
ARRAY_SIZE(dir_600_a1_gpio_buttons),
dir_600_a1_gpio_buttons);
- ap91_eth_init(NULL);
+ ar71xx_eth1_data.has_ar7240_switch = 1;
+ ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0);
+ ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1);
+
+ /* WAN port */
+ ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
+ ar71xx_eth0_data.speed = SPEED_100;
+ ar71xx_eth0_data.duplex = DUPLEX_FULL;
+
+ /* LAN ports */
+ ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
+ ar71xx_eth1_data.speed = SPEED_1000;
+ ar71xx_eth1_data.duplex = DUPLEX_FULL;
+
+ ar71xx_add_device_mdio(0x0);
+ ar71xx_add_device_eth(1);
+ ar71xx_add_device_eth(0);
+
ap91_pci_init(ee, mac);
}