From 8411e5c06e9db553d4976744751bd15cb0817b30 Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Wed, 23 Jan 2013 10:12:40 +0000 Subject: [PATCH] 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 SVN-Revision: 35307 --- package/switch/Makefile | 2 +- .../base-files/etc/uci-defaults/02_network | 86 ++++++++++--- .../linux/brcm63xx/base-files/lib/brcm63xx.sh | 2 +- .../05_failsafe_config_switch_brcm63xx | 5 - .../preinit/15_set_preinit_interface_brcm63xx | 19 +-- target/linux/brcm63xx/config-3.6 | 5 + .../brcm63xx/patches-3.6/500-board-D4PW.patch | 4 +- .../brcm63xx/patches-3.6/501-board-NB4.patch | 12 +- .../patches-3.6/502-board-96338W2_E7T.patch | 4 +- .../patches-3.6/503-board-CPVA642.patch | 4 +- .../504-board_dsl_274xb_rev_c.patch | 4 +- .../patches-3.6/507-board-MAGIC.patch | 4 +- .../patches-3.6/508-board_hw553.patch | 4 +- .../patches-3.6/509-board_rta1320_16m.patch | 4 +- .../patches-3.6/511-board_V2500V.patch | 4 +- .../patches-3.6/512-board_BTV2110.patch | 4 +- .../patches-3.6/514-board_ct536_ct5621.patch | 4 +- .../patches-3.6/516-board_96348A-122.patch | 4 +- .../patches-3.6/519_board_CPVA502plus.patch | 4 +- .../patches-3.6/525-board_96348w3.patch | 4 +- .../patches-3.6/526-board_CT6373-1.patch | 4 +- .../527-board_dva-g3810bn-tl-1.patch | 4 +- .../patches-3.6/529-board_fast2604.patch | 4 +- .../patches-3.6/553-board_rta770bw.patch | 4 +- .../patches-3.6/554-board_hw556.patch | 10 +- .../patches-3.6/555-boards_probe_switch.patch | 119 ++++++++++++++++++ 26 files changed, 265 insertions(+), 63 deletions(-) create mode 100644 target/linux/brcm63xx/patches-3.6/555-boards_probe_switch.patch 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 |\ -CPVA642 |\ -CT536_CT5621 |\ -D-4P-W |\ -"F@ST2604" |\ -HW556* |\ -NB6 |\ -SPW303V |\ -SPW500V |\ -V2110 |\ -96348W3) +SPW500V) ucidef_set_interface_lan "eth0" ;; -AW4139) +96338GW |\ +96338W |\ +96338W2_E7T |\ +96348A-122 |\ +96348W3 |\ +CPVA642 |\ +CT536_CT5621 |\ +CT6373-1 |\ +D-4P-W |\ +"F@ST2604" |\ +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 |\ +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, + },