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 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 |\ -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 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, + },