bcm63xx: switch to b53 and swconfig
authorJonas Gorski <jogo@openwrt.org>
Wed, 23 Jan 2013 10:12:40 +0000 (10:12 +0000)
committerJonas Gorski <jogo@openwrt.org>
Wed, 23 Jan 2013 10:12:40 +0000 (10:12 +0000)
Switch to using the B53 switch driver where appropriate.

Use a non-tagged default config where it isn't confirmed to be
working.

Remove the switch configuration in preinit as the switch will now
be configured by the driver  to use port isolation to prevent leakage
between lan and wan.

While at it, also provide a switch config for Neufbox 6.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 35307

26 files changed:
package/switch/Makefile
target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
target/linux/brcm63xx/base-files/lib/brcm63xx.sh
target/linux/brcm63xx/base-files/lib/preinit/05_failsafe_config_switch_brcm63xx
target/linux/brcm63xx/base-files/lib/preinit/15_set_preinit_interface_brcm63xx
target/linux/brcm63xx/config-3.6
target/linux/brcm63xx/patches-3.6/500-board-D4PW.patch
target/linux/brcm63xx/patches-3.6/501-board-NB4.patch
target/linux/brcm63xx/patches-3.6/502-board-96338W2_E7T.patch
target/linux/brcm63xx/patches-3.6/503-board-CPVA642.patch
target/linux/brcm63xx/patches-3.6/504-board_dsl_274xb_rev_c.patch
target/linux/brcm63xx/patches-3.6/507-board-MAGIC.patch
target/linux/brcm63xx/patches-3.6/508-board_hw553.patch
target/linux/brcm63xx/patches-3.6/509-board_rta1320_16m.patch
target/linux/brcm63xx/patches-3.6/511-board_V2500V.patch
target/linux/brcm63xx/patches-3.6/512-board_BTV2110.patch
target/linux/brcm63xx/patches-3.6/514-board_ct536_ct5621.patch
target/linux/brcm63xx/patches-3.6/516-board_96348A-122.patch
target/linux/brcm63xx/patches-3.6/519_board_CPVA502plus.patch
target/linux/brcm63xx/patches-3.6/525-board_96348w3.patch
target/linux/brcm63xx/patches-3.6/526-board_CT6373-1.patch
target/linux/brcm63xx/patches-3.6/527-board_dva-g3810bn-tl-1.patch
target/linux/brcm63xx/patches-3.6/529-board_fast2604.patch
target/linux/brcm63xx/patches-3.6/553-board_rta770bw.patch
target/linux/brcm63xx/patches-3.6/554-board_hw556.patch
target/linux/brcm63xx/patches-3.6/555-boards_probe_switch.patch [new file with mode: 0644]

index 9eda1e4d52dc69b0ffaed3694c1db90bfe1fc721..c577584803078bea743a4fa0bc5ca6d520101638 100644 (file)
@@ -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 \
index 08b85580061f9e02a28b368bbb00d2635749fcfc..106bf5f86fe89e4ea799fbdb0e6a1f44d3d53b0d 100755 (executable)
@@ -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"
        ;;
index 999f775171af84ea8388b7b9f12d5a685f6699a0..8116e807ddab0239e247ffc94441d05cdeb3115a 100755 (executable)
@@ -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
 
index 43da8cc0689134f19808c7e968dd7e043f5b21d3..e1653e3936034dfbd6546b700baec8092ce8f8f8 100644 (file)
@@ -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
         }
index 9d366fa339da715b0e5f1580d42bbd6bf1f8995f..7655fb7d53476bad60d9b9939e18226d9dc8deda 100644 (file)
@@ -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
 }
 
 
index 92e6e3d6305b8b2f47f2f0602d127aac1d49a3ec..bccf2ae16f13b67f548c4270865d09d1ffa931fa 100644 (file)
@@ -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
index 18ba06c52c0d1632d11a0221ce575aa538f967fb..db5db637c07407e8ca552fdc05b839ba36af9a4c 100644 (file)
@@ -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,
 +      },
index 21ed4422e5be4607193062bdcc90324ce211f68a..f59b71f5698d922d3994f6f44441d0f8c4e19e47 100644 (file)
@@ -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,
 +      },
 +      },
 +
 +      .enet1 = {
++              .has_phy                = 1,
++              .phy_id                 = 0,
 +              .force_speed_100        = 1,
 +              .force_duplex_full      = 1,
 +      },
 +      },
 +
 +      .enet1 = {
++              .has_phy                = 1,
++              .phy_id                 = 0,
 +              .force_speed_100        = 1,
 +              .force_duplex_full      = 1,
 +      },
 +      },
 +
 +      .enet1 = {
++              .has_phy                = 1,
++              .phy_id                 = 0,
 +              .force_speed_100        = 1,
 +              .force_duplex_full      = 1,
 +      },
 +      },
 +
 +      .enet1 = {
++              .has_phy                = 1,
++              .phy_id                 = 0,
 +              .force_speed_100        = 1,
 +              .force_duplex_full      = 1,
 +      },
index cbeb31b16335d0bb3df9ca937492473ed68ac83e..a1c14f40b1b478dadb01ed21f243e174b7634ce5 100644 (file)
@@ -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,
 +      },
index c20c5bcb562489670a5ff1cc08cfbbcf31a3fe5d..ad7af8fa1d85be4874e2f670249d9b18fc23ca74 100644 (file)
@@ -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,
 +      },
index de504ec7aca420244bc864d37840dc53b77e3bec..d0c4b034d76d1f1f19c607b68c6ebc8b63b558bf 100644 (file)
@@ -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,
 +      },
index bbb163cb3f8b13adf1ab5c33a2aa6ec87b32db28..a391b36c2c0bfb2d4c50efee8bb7733cef458eae 100644 (file)
@@ -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,
 +      },
index ff7d1c2c5a6d0ece4da23a14c1797e63ec32663a..8d3b877b0aa9f7fa5752268b1e8e472ecf5a615c 100644 (file)
@@ -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,
 +      },
index 7bc815e34e4060d1bc554b1362b8e2cdf2bd6732..71e5d0ebebda0862d0642f052fd541ac42771cca 100644 (file)
@@ -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,
 +      },
index 87341380163b23b4dadb30764c35ad572f75ff64..c739392e71699d564efd59284e528b4668542ed1 100644 (file)
@@ -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,
 +      },
index f05385a64f29ef48e066ced8089637f1a1d84d74..24fa4a6426cb0410067fdfb613f945b7f85a0942 100644 (file)
@@ -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,
 +      },
index 446c9da4c560d1c3691057de46d20055a54abe2d..e91f2040a609e094b84ad344dcb03b96205a4892 100644 (file)
@@ -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,
 +      },
index fd8ac19c616b363985358d81150991502d0c50a8..19ef500f49c7fea37fa66a3cfd7c5fae83fd238e 100644 (file)
@@ -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,
 +      },
index c6237a6d5778ef0f82be298322e60b28fceb2996..e0f52a75cc00788c9da2609addafeb47ff949981 100644 (file)
@@ -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,
 +      },
index 2e249f0f94be5ef9a5f4513cce0176d15c17c85a..758045cebb117cee57a49d4d65d4ce9e82f4e435 100644 (file)
@@ -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,
 +      },
index 20ef1e5be41765aede981083f0cdded7fcb688f7..295b80ba9fd5a79d5192b121caaa0b166c81b47d 100644 (file)
@@ -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,
 +      },
index 19ffc13ad77f02eb7b8f7e661c1bb2184c1b9858..b3b88192027231740e61100a7cee841595b7de23 100644 (file)
@@ -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,
 +      },
index c09e07f0ea10367ef8d9e5f5753aa5a6cf96fa7d..e04dcd1ef78ae8a22ae77757976e0d0beeba98b4 100644 (file)
@@ -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,
 +      },
index 9de099767435a8945a5eb84ce6567953e7fef16c..cd1ee996c56dbfee9b9664672d78f63eab58f705 100644 (file)
@@ -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,
 +      },
index 3d07ca144fc581451a77bcffd514b08d05820a43..69f0539ce92ac74729a44f2627d1241935f80a91 100644 (file)
@@ -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,
 +      },
 +
 +      .has_enet1                              = 1,
 +      .enet1 = {
++              .has_phy                        = 1,
++              .phy_id                         = 0,
 +              .force_speed_100                = 1,
 +              .force_duplex_full              = 1,
 +      },
 +
 +      .has_enet1                              = 1,
 +      .enet1 = {
++              .has_phy                        = 1,
++              .phy_id                         = 0,
 +              .force_speed_100                = 1,
 +              .force_duplex_full              = 1,
 +      },
 +
 +      .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 (file)
index 0000000..5dd1bf4
--- /dev/null
@@ -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,
+       },