bcm63xx: switch to b53 and swconfig

Switch to using the B53 switch driver where appropriate.

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

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

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

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

SVN-Revision: 35307
master
Jonas Gorski 12 years ago
parent 17d51121a6
commit 8411e5c06e
  1. 2
      package/switch/Makefile
  2. 78
      target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
  3. 2
      target/linux/brcm63xx/base-files/lib/brcm63xx.sh
  4. 5
      target/linux/brcm63xx/base-files/lib/preinit/05_failsafe_config_switch_brcm63xx
  5. 19
      target/linux/brcm63xx/base-files/lib/preinit/15_set_preinit_interface_brcm63xx
  6. 5
      target/linux/brcm63xx/config-3.6
  7. 4
      target/linux/brcm63xx/patches-3.6/500-board-D4PW.patch
  8. 12
      target/linux/brcm63xx/patches-3.6/501-board-NB4.patch
  9. 4
      target/linux/brcm63xx/patches-3.6/502-board-96338W2_E7T.patch
  10. 4
      target/linux/brcm63xx/patches-3.6/503-board-CPVA642.patch
  11. 4
      target/linux/brcm63xx/patches-3.6/504-board_dsl_274xb_rev_c.patch
  12. 4
      target/linux/brcm63xx/patches-3.6/507-board-MAGIC.patch
  13. 4
      target/linux/brcm63xx/patches-3.6/508-board_hw553.patch
  14. 4
      target/linux/brcm63xx/patches-3.6/509-board_rta1320_16m.patch
  15. 4
      target/linux/brcm63xx/patches-3.6/511-board_V2500V.patch
  16. 4
      target/linux/brcm63xx/patches-3.6/512-board_BTV2110.patch
  17. 4
      target/linux/brcm63xx/patches-3.6/514-board_ct536_ct5621.patch
  18. 4
      target/linux/brcm63xx/patches-3.6/516-board_96348A-122.patch
  19. 4
      target/linux/brcm63xx/patches-3.6/519_board_CPVA502plus.patch
  20. 4
      target/linux/brcm63xx/patches-3.6/525-board_96348w3.patch
  21. 4
      target/linux/brcm63xx/patches-3.6/526-board_CT6373-1.patch
  22. 4
      target/linux/brcm63xx/patches-3.6/527-board_dva-g3810bn-tl-1.patch
  23. 4
      target/linux/brcm63xx/patches-3.6/529-board_fast2604.patch
  24. 4
      target/linux/brcm63xx/patches-3.6/553-board_rta770bw.patch
  25. 10
      target/linux/brcm63xx/patches-3.6/554-board_hw556.patch
  26. 119
      target/linux/brcm63xx/patches-3.6/555-boards_probe_switch.patch

@ -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 \

@ -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"
;;

@ -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

@ -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
}

@ -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
}

@ -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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -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,
},
Loading…
Cancel
Save