diff --git a/target/linux/ar71xx/base-files/etc/defconfig/rb-750/network b/target/linux/ar71xx/base-files/etc/defconfig/rb-750/network index 113d9f3eea..de201bf5ec 100644 --- a/target/linux/ar71xx/base-files/etc/defconfig/rb-750/network +++ b/target/linux/ar71xx/base-files/etc/defconfig/rb-750/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 'port2 port3 port4 port5' + 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/Kconfig b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig index 6d52eba862..a0e1410206 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig @@ -30,7 +30,6 @@ config AR71XX_MACH_AP96 config AR71XX_MACH_DIR_600_A1 bool "D-Link DIR-600 rev. A1 support" - select AR71XX_DEV_AP91_ETH select AR71XX_DEV_AP91_PCI if PCI select AR71XX_DEV_M25P80 select AR71XX_DEV_GPIO_BUTTONS @@ -140,7 +139,6 @@ config AR71XX_MACH_RB4XX config AR71XX_MACH_RB750 bool "MikroTik RouterBOARD 750 support" - select AR71XX_DEV_AP91_ETH default n config AR71XX_MACH_WNDR3700 @@ -281,10 +279,6 @@ config AR71XX_DEV_AP91_PCI select AR71XX_PCI_ATH9K_FIXUP def_bool n -config AR71XX_DEV_AP91_ETH - select AR71XX_DEV_DSA - def_bool n - config AR71XX_DEV_AP94_PCI select AR71XX_PCI_ATH9K_FIXUP def_bool n diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile index 991ae92023..f6ceb0a98f 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile @@ -13,7 +13,6 @@ obj-y := prom.o irq.o setup.o devices.o gpio.o ar71xx.o obj-$(CONFIG_EARLY_PRINTK) += early_printk.o obj-$(CONFIG_PCI) += pci.o -obj-$(CONFIG_AR71XX_DEV_AP91_ETH) += dev-ap91-eth.o obj-$(CONFIG_AR71XX_DEV_AP91_PCI) += dev-ap91-pci.o obj-$(CONFIG_AR71XX_DEV_AP94_PCI) += dev-ap94-pci.o obj-$(CONFIG_AR71XX_DEV_AR913X_WMAC) += dev-ar913x-wmac.o diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-eth.c b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-eth.c deleted file mode 100644 index fbb813603f..0000000000 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-eth.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Atheros AP91 reference board ethernet initialization - * - * Copyright (C) 2010 Gabor Juhos - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 as published - * by the Free Software Foundation. - */ - -#include "devices.h" -#include "dev-dsa.h" -#include "dev-ap91-eth.h" - -static struct dsa_chip_data ap91_dsa_chip = { - .port_names[0] = "cpu", - .port_names[1] = "lan1", - .port_names[2] = "lan2", - .port_names[3] = "lan3", - .port_names[4] = "lan4", -}; - -static struct dsa_platform_data ap91_dsa_data = { - .nr_chips = 1, - .chip = &ap91_dsa_chip, -}; - -static void ap91_eth_set_port_name(unsigned port, const char *name) -{ - if (port < 1 || port > 5) - return; - - if (name) - ap91_dsa_chip.port_names[port] = (char *) name; -} - -void __init ap91_eth_init(const char *port_names[]) -{ - if (port_names) { - int i; - - for (i = 0; i < AP91_ETH_NUM_PORT_NAMES; i++) - ap91_eth_set_port_name(i + 1, port_names[i]); - } - - /* 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); - - ar71xx_add_device_dsa(1, &ap91_dsa_data); -} diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-eth.h b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-eth.h deleted file mode 100644 index 08b1dde6bb..0000000000 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-eth.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Atheros AP91 reference board ethernet initialization - * - * Copyright (C) 2010 Gabor Juhos - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 as published - * by the Free Software Foundation. - */ - -#ifndef _AR71XX_DEV_AP91_ETH_H -#define _AR71XX_DEV_AP91_ETH_H - -#define AP91_ETH_NUM_PORT_NAMES 4 - -#if defined(CONFIG_AR71XX_DEV_AP91_ETH) -void ap91_eth_init(const char *port_names[]) __init; -#else -static inline void ap91_eth_init(const char *port_names[]) { } -#endif - -#endif /* _AR71XX_DEV_AP91_ETH_H */ - 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 5c36402e34..ffb4c0b84b 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 @@ -16,7 +16,6 @@ #include "machtype.h" #include "devices.h" #include "dev-m25p80.h" -#include "dev-ap91-eth.h" #include "dev-ap91-pci.h" #include "dev-gpio-buttons.h" #include "dev-leds-gpio.h" diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb750.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb750.c index 9c8386b7ba..d60f45294d 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb750.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb750.c @@ -14,7 +14,6 @@ #include "machtype.h" #include "devices.h" -#include "dev-ap91-eth.h" static struct rb750_led_data rb750_leds[] = { { @@ -56,13 +55,6 @@ static struct platform_device rb750_leds_device = { } }; -static const char *rb750_port_names[AP91_ETH_NUM_PORT_NAMES] __initdata = { - "port5", - "port4", - "port3", - "port2", -}; - static struct platform_device rb750_nand_device = { .name = "rb750-nand", .id = -1, @@ -127,7 +119,21 @@ static void __init rb750_setup(void) ar71xx_init_mac(ar71xx_eth0_data.mac_addr, ar71xx_mac_base, 0); ar71xx_init_mac(ar71xx_eth1_data.mac_addr, ar71xx_mac_base, 1); - ap91_eth_init(rb750_port_names); + + /* 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_eth1_data.has_ar7240_switch = 1; + + ar71xx_add_device_mdio(0x0); + ar71xx_add_device_eth(1); + ar71xx_add_device_eth(0); platform_device_register(&rb750_leds_device); platform_device_register(&rb750_nand_device); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c index 834b462de4..b2cee220bb 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c @@ -16,7 +16,6 @@ #include "machtype.h" #include "devices.h" #include "dev-m25p80.h" -#include "dev-ap91-eth.h" #include "dev-ap91-pci.h" #include "dev-gpio-buttons.h" #include "dev-leds-gpio.h"