|
|
@@ -3,27 +3,54 @@
|
|
|
# Copyright (C) 2013 OpenWrt.org
|
|
|
#
|
|
|
|
|
|
+. /lib/functions.sh
|
|
|
+
|
|
|
+ramips_switchdev_from_soc() {
|
|
|
+ # The ethernet switch driver enables VLAN by default, but
|
|
|
+ # failsafe uses eth0, making the device unreachable:
|
|
|
+ # https://dev.openwrt.org/ticket/18768
|
|
|
+
|
|
|
+ local switchdev
|
|
|
+ local RT3X5X=$(grep -E "(RT3.5|RT5350|MT7628|MT7688|MT7620|MT7621)" /proc/cpuinfo)
|
|
|
+
|
|
|
+ [ -n "$RT3X5X" ] || return 1
|
|
|
+
|
|
|
+ case "$RT3X5X" in
|
|
|
+ *MT7620*)
|
|
|
+ switchdev=mt7620
|
|
|
+ ;;
|
|
|
+ *MT7621*)
|
|
|
+ switchdev=mt7530
|
|
|
+ ;;
|
|
|
+ *)
|
|
|
+ switchdev=rt305x
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+
|
|
|
+ echo "$switchdev"
|
|
|
+}
|
|
|
+
|
|
|
+ramips_switchdev_from_board() {
|
|
|
+ # For these devices, external ethernet switch should be used
|
|
|
+ # instead of the SoC internal switch.
|
|
|
+
|
|
|
+ local switchdev
|
|
|
+ local board=$(board_name)
|
|
|
+
|
|
|
+ case "$board" in
|
|
|
+ esac
|
|
|
+
|
|
|
+ echo "$switchdev"
|
|
|
+}
|
|
|
+
|
|
|
ramips_set_preinit_iface() {
|
|
|
- RT3X5X=$(grep -E "(RT3.5|RT5350|MT7628|MT7688|MT7620|MT7621)" /proc/cpuinfo)
|
|
|
-
|
|
|
- if [ -n "${RT3X5X}" ]; then
|
|
|
- # The ethernet switch driver enables VLAN by default, but
|
|
|
- # failsafe uses eth0, making the device unreachable:
|
|
|
- # https://dev.openwrt.org/ticket/18768
|
|
|
- case "${RT3X5X}" in
|
|
|
- *MT7620*)
|
|
|
- ralink_switchdev=mt7620
|
|
|
- ;;
|
|
|
- *MT7621*)
|
|
|
- ralink_switchdev=mt7530
|
|
|
- ;;
|
|
|
- *)
|
|
|
- ralink_switchdev=rt305x
|
|
|
- ;;
|
|
|
- esac
|
|
|
- swconfig dev $ralink_switchdev set reset 1
|
|
|
- swconfig dev $ralink_switchdev set enable_vlan 0
|
|
|
- swconfig dev $ralink_switchdev set apply 1
|
|
|
+ local switchdev=$(ramips_switchdev_from_board)
|
|
|
+ [ -n "$switchdev" ] || switchdev=$(ramips_switchdev_from_soc)
|
|
|
+
|
|
|
+ if [ -n "$switchdev" ]; then
|
|
|
+ swconfig dev $switchdev set reset 1
|
|
|
+ swconfig dev $switchdev set enable_vlan 0
|
|
|
+ swconfig dev $switchdev set apply 1
|
|
|
fi
|
|
|
|
|
|
ifname=eth0
|