5063f712a6
RT305x/RT5350 SoCs require the switch to be reset before touching the ethernet interface, otherwise the driver will panic. As we already init the ethernet in preinit we therefor need to reset the switch before that. Signed-off-by: Felix Kaechele <felix@fetzig.org> SVN-Revision: 37027
291 lines
5.7 KiB
Bash
Executable file
291 lines
5.7 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
. /lib/functions.sh
|
|
. /lib/ramips.sh
|
|
. /lib/functions/uci-defaults.sh
|
|
|
|
ramips_setup_rt3x5x_vlans()
|
|
{
|
|
if [ ! -x /sbin/swconfig ]; then
|
|
# legacy default
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
return
|
|
fi
|
|
local wanports=""
|
|
local lanports=""
|
|
for port in 5 4 3 2 1 0; do
|
|
if [ `swconfig dev rt305x port $port get disable` = "1" ]; then
|
|
continue
|
|
fi
|
|
if [ `swconfig dev rt305x port $port get lan` = "0" ]; then
|
|
wanports="$port $wanports"
|
|
else
|
|
lanports="$port $lanports"
|
|
fi
|
|
done
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
ucidef_add_switch "rt305x" "1" "1"
|
|
ucidef_add_switch_vlan "rt305x" "1" "$lanports 6t"
|
|
ucidef_add_switch_vlan "rt305x" "2" "$wanports 6t"
|
|
}
|
|
|
|
ramips_setup_interfaces()
|
|
{
|
|
local board="$1"
|
|
|
|
ucidef_set_interface_loopback
|
|
|
|
case $board in
|
|
3g300m | \
|
|
w150m | \
|
|
all0256n | \
|
|
all5002 | \
|
|
all5003 | \
|
|
broadway | \
|
|
wnce2001)
|
|
ucidef_add_switch "switch0" "1" "0"
|
|
ucidef_set_interface_lan "eth0"
|
|
;;
|
|
|
|
3g-6200nl | \
|
|
wl-330n)
|
|
ucidef_set_interface_lan "eth0.1"
|
|
;;
|
|
|
|
3g-6200n | \
|
|
argus-atp52b | \
|
|
b2c | \
|
|
nw718 | \
|
|
psr-680w | \
|
|
sl-r7205 | \
|
|
w502u | \
|
|
wr6202)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
;;
|
|
|
|
asl26555)
|
|
ucidef_set_interface_lan "eth0.1"
|
|
ucidef_add_switch "switch0" "1" "1"
|
|
ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t"
|
|
;;
|
|
|
|
dir-645)
|
|
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 6t"
|
|
ucidef_add_switch_vlan "switch0" "2" "0 6t"
|
|
;;
|
|
|
|
dir-615-h1 | \
|
|
mzk-w300nh2)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
ucidef_add_switch "switch0" "1" "1"
|
|
ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 6t"
|
|
ucidef_add_switch_vlan "switch0" "2" "4 6t"
|
|
;;
|
|
|
|
f5d8235-v1 | \
|
|
f5d8235-v2 | \
|
|
ur-326n4g)
|
|
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 6t"
|
|
ucidef_add_switch_vlan "switch0" "2" "0 6t"
|
|
;;
|
|
|
|
ur-336un)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
;;
|
|
|
|
br6524n | \
|
|
v11st-fe)
|
|
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 5t"
|
|
ucidef_add_switch_vlan "switch0" "2" "0 5t"
|
|
;;
|
|
|
|
rt-n15 | \
|
|
wl-351)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
ucidef_add_switch "switch0" "1" "1"
|
|
ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t"
|
|
ucidef_add_switch_vlan "switch0" "2" "4 5t"
|
|
;;
|
|
|
|
rt-n56u)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
ucidef_add_switch "switch0" "1" "1"
|
|
ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 8t"
|
|
ucidef_add_switch_vlan "switch0" "2" "4 8t"
|
|
;;
|
|
|
|
tew-691gr|\
|
|
tew-692gr)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
ucidef_add_switch "switch0" "1" "1"
|
|
ucidef_add_switch_vlan "switch0" "1" "0t 1 2 3 4"
|
|
ucidef_add_switch_vlan "switch0" "2" "0t 5"
|
|
;;
|
|
|
|
wcr-150gn)
|
|
ucidef_set_interfaces_lan_wan "eth0.2" "eth0.1"
|
|
;;
|
|
|
|
d105 | \
|
|
omni-emb-hpm|\
|
|
wli-tx4-ag300n)
|
|
ucidef_set_interface_lan "eth0"
|
|
;;
|
|
|
|
*)
|
|
RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"`
|
|
if [ -n "${RT3X5X}" ]; then
|
|
ramips_setup_rt3x5x_vlans
|
|
else
|
|
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
|
fi
|
|
;;
|
|
esac
|
|
}
|
|
|
|
ramips_setup_macs()
|
|
{
|
|
local board="$1"
|
|
local lan_mac=""
|
|
local wan_mac=""
|
|
|
|
case $board in
|
|
all0256n | \
|
|
all5002 | \
|
|
dir-615-h1)
|
|
lan_mac=$(mtd_get_mac_binary factory 40)
|
|
;;
|
|
3g-6200n | \
|
|
3g300m | \
|
|
w150m | \
|
|
air3gii | \
|
|
argus-atp52b | \
|
|
bc2 | \
|
|
br6425 | \
|
|
broadway | \
|
|
dir-620-d1 | \
|
|
f5d8235-v1 | \
|
|
mpr-a2 | \
|
|
mzk-w300nh2 | \
|
|
nw718 | \
|
|
psr-680w | \
|
|
rt-n15 | \
|
|
sl-r7205 | \
|
|
wl-351)
|
|
lan_mac=$(mtd_get_mac_binary factory 4)
|
|
wan_mac=$(macaddr_add "$lan_mac" 1)
|
|
;;
|
|
|
|
asl26555)
|
|
lan_mac=$(mtd_get_mac_binary devdata 16388)
|
|
;;
|
|
|
|
w306r-v20)
|
|
lan_mac=$(mtd_get_mac_binary factory 4)
|
|
wan_mac=$(macaddr_add "$lan_mac" 5)
|
|
;;
|
|
|
|
rt-n13u | \
|
|
fonera20n)
|
|
lan_mac=$(mtd_get_mac_binary factory 40)
|
|
wan_mac=$(macaddr_add "$lan_mac" 1)
|
|
;;
|
|
|
|
dir-300-b1 |\
|
|
dir-300-b2 |\
|
|
dir-600-b1)
|
|
lan_mac=$(mtd_get_mac_binary devdata 16388)
|
|
wan_mac=$(macaddr_add "$lan_mac" 1)
|
|
;;
|
|
|
|
dir-620-a1)
|
|
lan_mac=$(mtd_get_mac_binary factory 4)
|
|
lan_mac=$(macaddr_setbit_la "$lan_mac")
|
|
wan_mac=$(macaddr_add "$lan_mac" 1)
|
|
;;
|
|
|
|
dir-645)
|
|
lan_mac=$(mtd_get_mac_ascii nvram lanmac)
|
|
wan_mac=$(mtd_get_mac_ascii nvram wanmac)
|
|
;;
|
|
|
|
esr-9753 | \
|
|
ur-326n4g | \
|
|
ur-336un)
|
|
lan_mac=$(mtd_get_mac_binary devdata 16388)
|
|
wan_mac=$(macaddr_add "$lan_mac" 1)
|
|
;;
|
|
|
|
nbg-419n | \
|
|
wcr-150gn)
|
|
lan_mac=$(mtd_get_mac_binary factory 4)
|
|
wan_mac=$(mtd_get_mac_binary factory 40)
|
|
;;
|
|
|
|
omni-emb-hpm)
|
|
lan_mac=$(mtd_get_mac_binary factory 40)
|
|
;;
|
|
|
|
f5d8235-v2)
|
|
lan_mac=$(mtd_get_mac_binary "u-boot" 262148)
|
|
wan_mac=$(macaddr_add "$lan_mac" 1)
|
|
;;
|
|
|
|
rt-n56u)
|
|
lan_mac=$(mtd_get_mac_binary factory 4)
|
|
wan_mac=$(mtd_get_mac_binary factory 32772)
|
|
;;
|
|
|
|
tew-691gr)
|
|
lan_mac=$(mtd_get_mac_binary factory 40)
|
|
wan_mac=$(macaddr_add "$lan_mac" 3)
|
|
;;
|
|
|
|
tew-692gr)
|
|
lan_mac=$(mtd_get_mac_binary factory 40)
|
|
wan_mac=$(macaddr_add "$lan_mac" 4)
|
|
;;
|
|
|
|
all0239-3g | \
|
|
carambola | \
|
|
freestation5 | \
|
|
w502u | \
|
|
wnce2001)
|
|
lan_mac=$(mtd_get_mac_binary factory 40)
|
|
wan_mac=$(mtd_get_mac_binary factory 46)
|
|
;;
|
|
|
|
wl341v3)
|
|
lan_mac=$(mtd_get_mac_binary board-nvram 65440)
|
|
wan_mac=$(macaddr_add "$lan_mac" 1)
|
|
;;
|
|
|
|
d105 | \
|
|
wli-tx4-ag300n)
|
|
lan_mac=$(mtd_get_mac_binary factory 4)
|
|
;;
|
|
|
|
esac
|
|
|
|
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
|
|
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac
|
|
}
|
|
|
|
[ -e /etc/config/network ] && exit 0
|
|
|
|
touch /etc/config/network
|
|
|
|
board=$(ramips_board_name)
|
|
|
|
ramips_setup_interfaces $board
|
|
ramips_setup_macs $board
|
|
|
|
uci commit network
|
|
|
|
exit 0
|