aboutsummaryrefslogtreecommitdiffstats
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
commita72a8da790e4784ea6c5956883f41f0ccfa6f0b9 (patch)
tree38a8c8348f9edfaeb73cf487041b4b757ac3ead0
parent9cd6b274ba27af06094d7efbfa78a7a7ba28f1e0 (diff)
downloadupstream-a72a8da790e4784ea6c5956883f41f0ccfa6f0b9.tar.gz
upstream-a72a8da790e4784ea6c5956883f41f0ccfa6f0b9.tar.bz2
upstream-a72a8da790e4784ea6c5956883f41f0ccfa6f0b9.zip
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> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35307 3c298f89-4303-0410-b956-a3cf2f4a3e73
-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 9eda1e4d52d..c5775848030 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 08b85580061..106bf5f86fe 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 999f775171a..8116e807dda 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 43da8cc0689..e1653e39360 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 9d366fa339d..7655fb7d534 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 92e6e3d6305..bccf2ae16f1 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 18ba06c52c0..db5db637c07 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 21ed4422e5b..f59b71f5698 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 cbeb31b1633..a1c14f40b1b 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 c20c5bcb562..ad7af8fa1d8 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 de504ec7aca..d0c4b034d76 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 bbb163cb3f8..a391b36c2c0 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 ff7d1c2c5a6..8d3b877b0aa 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 7bc815e34e4..71e5d0ebebd 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 87341380163..c739392e716 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 f05385a64f2..24fa4a6426c 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 446c9da4c56..e91f2040a60 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 fd8ac19c616..19ef500f49c 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 c6237a6d577..e0f52a75cc0 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 2e249f0f94b..758045cebb1 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 20ef1e5be41..295b80ba9fd 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 19ffc13ad77..b3b88192027 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 c09e07f0ea1..e04dcd1ef78 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 9de09976743..cd1ee996c56 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 3d07ca144fc..69f0539ce92 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 00000000000..5dd1bf460a6
--- /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,
+ },