summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 9eda1e4d52..c577584803 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 08b8558006..106bf5f86f 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 999f775171..8116e807dd 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 43da8cc068..e1653e3936 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 9d366fa339..7655fb7d53 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 92e6e3d630..bccf2ae16f 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 18ba06c52c..db5db637c0 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 21ed4422e5..f59b71f569 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 cbeb31b163..a1c14f40b1 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 c20c5bcb56..ad7af8fa1d 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 de504ec7ac..d0c4b034d7 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 bbb163cb3f..a391b36c2c 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 ff7d1c2c5a..8d3b877b0a 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 7bc815e34e..71e5d0ebeb 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 8734138016..c739392e71 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 f05385a64f..24fa4a6426 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 446c9da4c5..e91f2040a6 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 fd8ac19c61..19ef500f49 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 c6237a6d57..e0f52a75cc 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 2e249f0f94..758045cebb 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 20ef1e5be4..295b80ba9f 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 19ffc13ad7..b3b8819202 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 c09e07f0ea..e04dcd1ef7 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 9de0997674..cd1ee996c5 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 3d07ca144f..69f0539ce9 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 0000000000..5dd1bf460a
--- /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,
+ },