ramips: move ESW reset to preinit on RT305x/RT5350
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 24 Jun 2013 12:39:28 +0000 (12:39 +0000)
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 24 Jun 2013 12:39:28 +0000 (12:39 +0000)
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>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37027 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/ramips/base-files/etc/uci-defaults/02_network
target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips

index b45b0ca..747a83d 100755 (executable)
@@ -13,7 +13,6 @@ ramips_setup_rt3x5x_vlans()
        fi
        local wanports=""
        local lanports=""
        fi
        local wanports=""
        local lanports=""
-       swconfig dev rt305x set reset 1
        for port in 5 4 3 2 1 0; do
                if [ `swconfig dev rt305x port $port get disable` = "1" ]; then
                        continue
        for port in 5 4 3 2 1 0; do
                if [ `swconfig dev rt305x port $port get disable` = "1" ]; then
                        continue
index edc5a12..db03b6b 100644 (file)
@@ -6,17 +6,10 @@
 . /lib/ramips.sh
 
 ramips_set_preinit_iface() {
 . /lib/ramips.sh
 
 ramips_set_preinit_iface() {
-       local board=$(ramips_board_name)
-
-       case "$board" in
-       mpr-a2)
-               #TODO
-               # Ralink ethernet driver cannot re-open ethernet if it is opened during preinit and then closed.
-               # Looks like Ralink ethernet driver has a problem.
-               # Temporary solution is not to open ethernet during preinit.
-               return 0
-               ;;
-       esac
+       RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"`
+       if [ -n "${RT3X5X}" ]; then
+               swconfig dev rt305x set reset 1
+       fi
 
        ifname=eth0
 }
 
        ifname=eth0
 }