summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Gorski <jogo@openwrt.org>2013-01-23 10:12:40 +0000
committerJonas Gorski <jogo@openwrt.org>2013-01-23 10:12:40 +0000
commit8411e5c06e9db553d4976744751bd15cb0817b30 (patch)
treeb8e22fef30ec120c40bcfa78947ddc324e647201
parent17d51121a621082f1cda4a7224afc1915f95d5c6 (diff)
downloadmtk-20170518-8411e5c06e9db553d4976744751bd15cb0817b30.zip
mtk-20170518-8411e5c06e9db553d4976744751bd15cb0817b30.tar.gz
mtk-20170518-8411e5c06e9db553d4976744751bd15cb0817b30.tar.bz2
bcm63xx: switch to b53 and swconfig
Switch to using the B53 switch driver where appropriate. Use a non-tagged default config where it isn't confirmed to be working. Remove the switch configuration in preinit as the switch will now be configured by the driver to use port isolation to prevent leakage between lan and wan. While at it, also provide a switch config for Neufbox 6. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 35307
-rw-r--r--package/switch/Makefile2
-rwxr-xr-xtarget/linux/brcm63xx/base-files/etc/uci-defaults/02_network78
-rwxr-xr-xtarget/linux/brcm63xx/base-files/lib/brcm63xx.sh2
-rw-r--r--target/linux/brcm63xx/base-files/lib/preinit/05_failsafe_config_switch_brcm63xx5
-rw-r--r--target/linux/brcm63xx/base-files/lib/preinit/15_set_preinit_interface_brcm63xx19
-rw-r--r--target/linux/brcm63xx/config-3.65
-rw-r--r--target/linux/brcm63xx/patches-3.6/500-board-D4PW.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/501-board-NB4.patch12
-rw-r--r--target/linux/brcm63xx/patches-3.6/502-board-96338W2_E7T.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/503-board-CPVA642.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/504-board_dsl_274xb_rev_c.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/507-board-MAGIC.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/508-board_hw553.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/509-board_rta1320_16m.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/511-board_V2500V.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/512-board_BTV2110.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/514-board_ct536_ct5621.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/516-board_96348A-122.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/519_board_CPVA502plus.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/525-board_96348w3.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/526-board_CT6373-1.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/527-board_dva-g3810bn-tl-1.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/529-board_fast2604.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/553-board_rta770bw.patch4
-rw-r--r--target/linux/brcm63xx/patches-3.6/554-board_hw556.patch10
-rw-r--r--target/linux/brcm63xx/patches-3.6/555-boards_probe_switch.patch119
26 files changed, 261 insertions, 59 deletions
diff --git a/package/switch/Makefile b/package/switch/Makefile
index 9eda1e4..c577584 100644
--- a/package/switch/Makefile
+++ b/package/switch/Makefile
@@ -15,7 +15,7 @@ include $(INCLUDE_DIR)/package.mk
define KernelPackage/switch
SUBMENU:=Other modules
- DEPENDS:=@TARGET_brcm47xx||TARGET_brcm63xx
+ DEPENDS:=@TARGET_brcm47xx
TITLE:=Switch drivers
FILES:= \
$(PKG_BUILD_DIR)/switch-core.ko \
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
index 08b8558..106bf5f 100755
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
@@ -14,40 +14,88 @@ ucidef_set_interface_loopback
case "$board_name" in
-96328avng |\
-96328A-1241N |\
-96328A-1441N1 |\
-963281TAN |\
-963281T_TEF |\
-96348A-122 |\
+96348W3 |\
96358-502V |\
-CT6373-1 |\
-AW4339U |\
+SPW500V)
+ ucidef_set_interface_lan "eth0"
+ ;;
+
+96338GW |\
+96338W |\
+96338W2_E7T |\
+96348A-122 |\
+96348W3 |\
CPVA642 |\
CT536_CT5621 |\
+CT6373-1 |\
D-4P-W |\
"F@ST2604" |\
-HW556* |\
-NB6 |\
-SPW303V |\
-SPW500V |\
-V2110 |\
-96348W3)
+RTA1320_16M |\
+RTA770BW |\
+V2110)
ucidef_set_interface_lan "eth0"
+ ucidef_add_switch "eth0" "1" "1"
+ ucidef_add_switch_vlan "eth0" "1" "0 1 2 3 4 5"
+ ;;
+
+96348GW |\
+96348GW-10 |\
+96348GW-11 |\
+96348GW-A |\
+96358VW |\
+96358VW2 |\
+AGPF-S0 |\
+"CPVA502+" |\
+DV201AMR |\
+DWV-S0 |\
+"F@ST2404" |\
+HW553 |\
+MAGIC |\
+RTA1025W_16 |\
+V2500V_BB)
+ ucidef_set_interfaces_lan_wan "eth1" "eth0"
+ ucidef_add_switch "eth1" "1" "1"
+ ucidef_add_switch_vlan "eth1" "1" "0 1 2 3 4 5"
;;
-AW4139)
+AW4139 |\
+HW556*)
ucidef_set_interface_lan "eth0.1"
ucidef_add_switch "eth0" "1" "1"
ucidef_add_switch_vlan "eth0" "1" "0 1 2 3 4 5t"
;;
+NB4-* |\
DVG3810BN)
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
ucidef_add_switch "eth1" "1" "1"
ucidef_add_switch_vlan "eth1" "1" "0 1 2 3 4 5t"
;;
+96328avng |\
+96328A-1241N |\
+96328A-1441N1 |\
+963281TAN |\
+963281T_TEF |\
+96368MVNgr)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "eth0" "1" "1"
+ ucidef_add_switch_vlan "eth0" "1" "0 1 2 3 8t"
+ ;;
+
+96368MVWG)
+ ucidef_set_interface_lan "eth0.1"
+ ucidef_add_switch "eth0" "1" "1"
+ ucidef_add_switch_vlan "eth0" "1" "1 2 4 5 8t"
+ ;;
+
+NB6)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 9t"
+ ucidef_add_switch_vlan "switch0" "2" "0 9t"
+ ;;
+
*)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
;;
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index 999f775..8116e80 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -13,7 +13,7 @@ brcm63xx_has_reset_button=""
brcm63xx_detect() {
board_name=$(awk 'BEGIN{FS="[ \t:/]+"} /system type/ {print $4}' /proc/cpuinfo)
- if [ "$board_name" = "96358VW" ] && [ -e /proc/switch/eth1/enable ]; then
+ if [ "$board_name" = "96358VW" ] && [ -n "$(swconfig dev eth1 help 2>/dev/null)" ]; then
board_name="DVAG3810BN"
fi
diff --git a/target/linux/brcm63xx/base-files/lib/preinit/05_failsafe_config_switch_brcm63xx b/target/linux/brcm63xx/base-files/lib/preinit/05_failsafe_config_switch_brcm63xx
index 43da8cc..e1653e3 100644
--- a/target/linux/brcm63xx/base-files/lib/preinit/05_failsafe_config_switch_brcm63xx
+++ b/target/linux/brcm63xx/base-files/lib/preinit/05_failsafe_config_switch_brcm63xx
@@ -1,11 +1,6 @@
#!/bin/sh
failsafe_ip() {
- [ -d "/proc/switch/$ifname" ] && {
- ifconfig "$ifname" 0.0.0.0 down
- echo "0 1 2 3 4 ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
- }
-
[ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
ifconfig $pi_ifname $pi_ip netmask $pi_netmask broadcast $pi_broadcast up
}
diff --git a/target/linux/brcm63xx/base-files/lib/preinit/15_set_preinit_interface_brcm63xx b/target/linux/brcm63xx/base-files/lib/preinit/15_set_preinit_interface_brcm63xx
index 9d366fa..7655fb7 100644
--- a/target/linux/brcm63xx/base-files/lib/preinit/15_set_preinit_interface_brcm63xx
+++ b/target/linux/brcm63xx/base-files/lib/preinit/15_set_preinit_interface_brcm63xx
@@ -16,29 +16,12 @@ preinit_ip_deconfig() {
ifconfig $pi_ifname 0.0.0.0 down
}
fi
- [ -d "/proc/switch/$ifname" ] && {
- echo 1 > "/proc/switch/$ifname/reset"
- echo "0 1 2 3 4 ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
- }
-
}
preinit_net_echo() {
preinit_ip
-
- [ -d "/proc/switch/$ifname" ] && {
- echo 1 > "/proc/switch/$ifname/reset"
- # this would be easier if we blasted the message across all ports
- # but we don't want packets leaking across interfaces
- for port in $(seq 0 4); do {
- echo "$port ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
- port_net_echo $1
- }; done
-
- echo "0 ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
-
- } || port_net_echo $1
+ port_net_echo $1
}
diff --git a/target/linux/brcm63xx/config-3.6 b/target/linux/brcm63xx/config-3.6
index 92e6e3d..bccf2ae 100644
--- a/target/linux/brcm63xx/config-3.6
+++ b/target/linux/brcm63xx/config-3.6
@@ -8,6 +8,11 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_AUDIT=y
CONFIG_AUDIT_GENERIC=y
+CONFIG_B53=y
+CONFIG_B53_MMAP_DRIVER=y
+CONFIG_B53_PHY_DRIVER=y
+CONFIG_B53_PHY_FIXUP=y
+CONFIG_B53_SPI_DRIVER=y
CONFIG_BCM63XX=y
CONFIG_BCM63XX_CPU_6328=y
CONFIG_BCM63XX_CPU_6338=y
diff --git a/target/linux/brcm63xx/patches-3.6/500-board-D4PW.patch b/target/linux/brcm63xx/patches-3.6/500-board-D4PW.patch
index 18ba06c..db5db63 100644
--- a/target/linux/brcm63xx/patches-3.6/500-board-D4PW.patch
+++ b/target/linux/brcm63xx/patches-3.6/500-board-D4PW.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -512,6 +512,54 @@ static struct board_info __initdata boar
+@@ -512,6 +512,56 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@@ -14,6 +14,8 @@
+ .has_uart0 = 1,
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/501-board-NB4.patch b/target/linux/brcm63xx/patches-3.6/501-board-NB4.patch
index 21ed442..f59b71f 100644
--- a/target/linux/brcm63xx/patches-3.6/501-board-NB4.patch
+++ b/target/linux/brcm63xx/patches-3.6/501-board-NB4.patch
@@ -22,7 +22,7 @@
static struct board_info board;
/*
-@@ -709,6 +717,586 @@ static struct board_info __initdata boar
+@@ -709,6 +717,596 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@@ -77,6 +77,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
@@ -188,6 +190,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
@@ -299,6 +303,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
@@ -410,6 +416,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
@@ -516,6 +524,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/502-board-96338W2_E7T.patch b/target/linux/brcm63xx/patches-3.6/502-board-96338W2_E7T.patch
index cbeb31b..a1c14f4 100644
--- a/target/linux/brcm63xx/patches-3.6/502-board-96338W2_E7T.patch
+++ b/target/linux/brcm63xx/patches-3.6/502-board-96338W2_E7T.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -183,6 +183,38 @@ static struct board_info __initdata boar
+@@ -183,6 +183,40 @@ static struct board_info __initdata boar
},
},
};
@@ -12,6 +12,8 @@
+ .has_enet0 = 1,
+
+ .enet0 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/503-board-CPVA642.patch b/target/linux/brcm63xx/patches-3.6/503-board-CPVA642.patch
index c20c5bc..ad7af8f 100644
--- a/target/linux/brcm63xx/patches-3.6/503-board-CPVA642.patch
+++ b/target/linux/brcm63xx/patches-3.6/503-board-CPVA642.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -706,6 +706,96 @@ static struct board_info __initdata boar
+@@ -706,6 +706,98 @@ static struct board_info __initdata boar
},
};
@@ -13,6 +13,8 @@
+ .has_pci = 1,
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/504-board_dsl_274xb_rev_c.patch b/target/linux/brcm63xx/patches-3.6/504-board_dsl_274xb_rev_c.patch
index de504ec..d0c4b03 100644
--- a/target/linux/brcm63xx/patches-3.6/504-board_dsl_274xb_rev_c.patch
+++ b/target/linux/brcm63xx/patches-3.6/504-board_dsl_274xb_rev_c.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -840,6 +840,59 @@ static struct board_info __initdata boar
+@@ -840,6 +840,61 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@@ -14,6 +14,8 @@
+ .has_pci = 1,
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/507-board-MAGIC.patch b/target/linux/brcm63xx/patches-3.6/507-board-MAGIC.patch
index bbb163c..a391b36 100644
--- a/target/linux/brcm63xx/patches-3.6/507-board-MAGIC.patch
+++ b/target/linux/brcm63xx/patches-3.6/507-board-MAGIC.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -767,6 +767,76 @@ static struct board_info __initdata boar
+@@ -767,6 +767,78 @@ static struct board_info __initdata boar
},
},
};
@@ -20,6 +20,8 @@
+ },
+ .enet1 = {
+ /* it has BP_ENET_EXTERNAL_PHY */
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/508-board_hw553.patch b/target/linux/brcm63xx/patches-3.6/508-board_hw553.patch
index ff7d1c2..8d3b877 100644
--- a/target/linux/brcm63xx/patches-3.6/508-board_hw553.patch
+++ b/target/linux/brcm63xx/patches-3.6/508-board_hw553.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1709,6 +1709,80 @@ static struct board_info __initdata boar
+@@ -1709,6 +1709,82 @@ static struct board_info __initdata boar
.spis = nb4_spi_devices,
.num_spis = ARRAY_SIZE(nb4_spi_devices),
};
@@ -21,6 +21,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/509-board_rta1320_16m.patch b/target/linux/brcm63xx/patches-3.6/509-board_rta1320_16m.patch
index 7bc815e..71e5d0e 100644
--- a/target/linux/brcm63xx/patches-3.6/509-board_rta1320_16m.patch
+++ b/target/linux/brcm63xx/patches-3.6/509-board_rta1320_16m.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -215,6 +215,43 @@ static struct board_info __initdata boar
+@@ -215,6 +215,45 @@ static struct board_info __initdata boar
},
},
};
@@ -13,6 +13,8 @@
+ .has_enet0 = 1,
+
+ .enet0 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/511-board_V2500V.patch b/target/linux/brcm63xx/patches-3.6/511-board_V2500V.patch
index 8734138..c739392 100644
--- a/target/linux/brcm63xx/patches-3.6/511-board_V2500V.patch
+++ b/target/linux/brcm63xx/patches-3.6/511-board_V2500V.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -874,6 +874,63 @@ static struct board_info __initdata boar
+@@ -874,6 +874,65 @@ static struct board_info __initdata boar
},
},
};
@@ -19,6 +19,8 @@
+ .use_internal_phy = 1,
+ },
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/512-board_BTV2110.patch b/target/linux/brcm63xx/patches-3.6/512-board_BTV2110.patch
index f05385a..24fa4a6 100644
--- a/target/linux/brcm63xx/patches-3.6/512-board_BTV2110.patch
+++ b/target/linux/brcm63xx/patches-3.6/512-board_BTV2110.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -438,6 +438,62 @@ static struct board_info __initdata boar
+@@ -438,6 +438,64 @@ static struct board_info __initdata boar
},
};
@@ -15,6 +15,8 @@
+ .has_pci = 1,
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/514-board_ct536_ct5621.patch b/target/linux/brcm63xx/patches-3.6/514-board_ct536_ct5621.patch
index 446c9da..e91f204 100644
--- a/target/linux/brcm63xx/patches-3.6/514-board_ct536_ct5621.patch
+++ b/target/linux/brcm63xx/patches-3.6/514-board_ct536_ct5621.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -494,6 +494,49 @@ static struct board_info __initdata boar
+@@ -494,6 +494,51 @@ static struct board_info __initdata boar
};
@@ -14,6 +14,8 @@
+ .has_pci = 1,
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/516-board_96348A-122.patch b/target/linux/brcm63xx/patches-3.6/516-board_96348A-122.patch
index fd8ac19..19ef500 100644
--- a/target/linux/brcm63xx/patches-3.6/516-board_96348A-122.patch
+++ b/target/linux/brcm63xx/patches-3.6/516-board_96348A-122.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -537,6 +537,67 @@ static struct board_info __initdata boar
+@@ -537,6 +537,69 @@ static struct board_info __initdata boar
},
};
@@ -13,6 +13,8 @@
+ .has_pci = 1,
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/519_board_CPVA502plus.patch b/target/linux/brcm63xx/patches-3.6/519_board_CPVA502plus.patch
index c6237a6..e0f52a7 100644
--- a/target/linux/brcm63xx/patches-3.6/519_board_CPVA502plus.patch
+++ b/target/linux/brcm63xx/patches-3.6/519_board_CPVA502plus.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1092,6 +1092,44 @@ static struct board_info __initdata boar
+@@ -1092,6 +1092,46 @@ static struct board_info __initdata boar
},
},
};
@@ -19,6 +19,8 @@
+ .use_internal_phy = 1,
+ },
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/525-board_96348w3.patch b/target/linux/brcm63xx/patches-3.6/525-board_96348w3.patch
index 2e249f0..758045c 100644
--- a/target/linux/brcm63xx/patches-3.6/525-board_96348w3.patch
+++ b/target/linux/brcm63xx/patches-3.6/525-board_96348w3.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1337,6 +1337,57 @@ static struct board_info __initdata boar
+@@ -1337,6 +1337,59 @@ static struct board_info __initdata boar
},
};
@@ -14,6 +14,8 @@
+ .has_pci = 1,
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/526-board_CT6373-1.patch b/target/linux/brcm63xx/patches-3.6/526-board_CT6373-1.patch
index 20ef1e5..295b80b 100644
--- a/target/linux/brcm63xx/patches-3.6/526-board_CT6373-1.patch
+++ b/target/linux/brcm63xx/patches-3.6/526-board_CT6373-1.patch
@@ -14,7 +14,7 @@
static struct board_info board;
/*
-@@ -2264,6 +2271,111 @@ static struct board_info __initdata boar
+@@ -2264,6 +2271,113 @@ static struct board_info __initdata boar
.num_spis = ARRAY_SIZE(nb4_spi_devices),
};
@@ -64,6 +64,8 @@
+
+ .has_enet1 = 1,
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/527-board_dva-g3810bn-tl-1.patch b/target/linux/brcm63xx/patches-3.6/527-board_dva-g3810bn-tl-1.patch
index 19ffc13..b3b8819 100644
--- a/target/linux/brcm63xx/patches-3.6/527-board_dva-g3810bn-tl-1.patch
+++ b/target/linux/brcm63xx/patches-3.6/527-board_dva-g3810bn-tl-1.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2515,6 +2515,71 @@ static struct board_info __initdata boar
+@@ -2515,6 +2515,73 @@ static struct board_info __initdata boar
},
}
};
@@ -23,6 +23,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/529-board_fast2604.patch b/target/linux/brcm63xx/patches-3.6/529-board_fast2604.patch
index c09e07f..e04dcd1 100644
--- a/target/linux/brcm63xx/patches-3.6/529-board_fast2604.patch
+++ b/target/linux/brcm63xx/patches-3.6/529-board_fast2604.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1013,6 +1013,55 @@ static struct board_info __initdata boar
+@@ -1013,6 +1013,57 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
@@ -14,6 +14,8 @@
+
+ .has_enet1 = 1,
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/553-board_rta770bw.patch b/target/linux/brcm63xx/patches-3.6/553-board_rta770bw.patch
index 9de0997..cd1ee99 100644
--- a/target/linux/brcm63xx/patches-3.6/553-board_rta770bw.patch
+++ b/target/linux/brcm63xx/patches-3.6/553-board_rta770bw.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -738,6 +738,53 @@ static struct board_info __initdata boar
+@@ -738,6 +738,55 @@ static struct board_info __initdata boar
.has_uart0 = 1,
};
@@ -14,6 +14,8 @@
+ .has_enet0 = 1,
+
+ .enet0 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/554-board_hw556.patch b/target/linux/brcm63xx/patches-3.6/554-board_hw556.patch
index 3d07ca1..69f0539 100644
--- a/target/linux/brcm63xx/patches-3.6/554-board_hw556.patch
+++ b/target/linux/brcm63xx/patches-3.6/554-board_hw556.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2923,6 +2923,366 @@ static struct board_info __initdata boar
+@@ -2923,6 +2923,374 @@ static struct board_info __initdata boar
},
};
@@ -22,6 +22,8 @@
+
+ .has_enet1 = 1,
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
@@ -112,6 +114,8 @@
+
+ .has_enet1 = 1,
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
@@ -203,6 +207,8 @@
+
+ .has_enet1 = 1,
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
@@ -294,6 +300,8 @@
+
+ .has_enet1 = 1,
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
diff --git a/target/linux/brcm63xx/patches-3.6/555-boards_probe_switch.patch b/target/linux/brcm63xx/patches-3.6/555-boards_probe_switch.patch
new file mode 100644
index 0000000..5dd1bf4
--- /dev/null
+++ b/target/linux/brcm63xx/patches-3.6/555-boards_probe_switch.patch
@@ -0,0 +1,119 @@
+--- linux-3.6.11/arch/mips/bcm63xx/boards/board_bcm963xx.c.orig 2013-01-05 21:18:15.153079713 +0100
++++ linux-3.6.11/arch/mips/bcm63xx/boards/board_bcm963xx.c 2013-01-05 21:18:27.899285369 +0100
+@@ -583,6 +583,8 @@
+ .has_uart0 = 1,
+ .has_enet0 = 1,
+ .enet0 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -626,6 +628,8 @@
+ .has_uart0 = 1,
+ .has_enet0 = 1,
+ .enet0 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -857,6 +861,8 @@
+ .use_internal_phy = 1,
+ },
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -929,6 +935,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -1158,6 +1166,8 @@
+ .use_internal_phy = 1,
+ },
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -1333,6 +1343,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -1407,6 +1419,8 @@
+ .use_internal_phy = 1,
+ },
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -1428,6 +1442,8 @@
+ .use_internal_phy = 1,
+ },
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -1447,6 +1463,8 @@
+ .use_internal_phy = 1,
+ },
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -1822,6 +1840,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -1874,6 +1894,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -2014,6 +2036,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+@@ -2131,6 +2155,8 @@
+ },
+
+ .enet1 = {
++ .has_phy = 1,
++ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },