openwrtv4/target/linux/ramips/base-files/etc/uci-defaults/02_network
John Crispin 5063f712a6 ramips: move ESW reset to preinit on RT305x/RT5350
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
2013-06-24 12:39:28 +00:00

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