From a2670b502d829e3ba00e26293e47540600e6bfd8 Mon Sep 17 00:00:00 2001
From: matein4 <matein4@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Sun, 25 Jan 2009 20:42:03 +0000
Subject: [PATCH] Added support WRV54G.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14186 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 scripts/flashing/jungo-image.py | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/scripts/flashing/jungo-image.py b/scripts/flashing/jungo-image.py
index 08ca9db79..d4143ea6d 100644
--- a/scripts/flashing/jungo-image.py
+++ b/scripts/flashing/jungo-image.py
@@ -69,15 +69,21 @@ def get_flash_size():
         i = buf.find('mtd0:')
         if i > 0:
             return int(buf[i+6:].split()[0],16)
-        print "Can't find mtd0!"
+        # use different command
+        tn.write("flash_layout\n")
+        buf = tn.read_until("Returned 0", 3)
+        i = buf.rfind('Range ')
+        if i > 0:
+            return int(buf[i+17:].split()[0],16)
+        print "Can't determine flash size!"
     else:
-        print "Can't access /proc/mtd!"
+        print "Unable to obtain flash size!"
     sys.exit(2)
 
 def image_dump(tn, dumpfile):
     if not dumpfile:
         tn.write("ver\n");
-        buf = tn.read_until("Returned 0")
+        buf = tn.read_until("Returned 0",2)
         i = buf.find("Platform:")
         if i < 0:
 	    platform="jungo"
@@ -86,12 +92,12 @@ def image_dump(tn, dumpfile):
 	    i=line.find('\n')
 	    platform=line[:i].split()[-1]
 
-        tn.write("ifconfig -v %s\n" % device);
-        buf = tn.read_until("Returned 0")
+        tn.write("rg_conf_print /dev/%s/mac\n" % device);
+        buf = tn.read_until("Returned 0",3)
 
-	i = buf.find("mac = 0")
+	i = buf.find("mac(")
 	if i > 0:
-	    i += 6
+	    i += 4
 	else:
 	    print "No MAC address found! (use -f option)"
 	    sys.exit(1)
@@ -161,7 +167,7 @@ for o, a in opts:
 	usage()
 	sys.exit(1)
     elif o in ("-V", "--version"):
-	print "%s: 0.9" % sys.argv[0]
+	print "%s: 0.10" % sys.argv[0]
 	sys.exit(1)
     elif o in ("-d", "--no-dump"):
 	do_dump = 1
@@ -245,7 +251,7 @@ if imagefile or url:
     if verbose:
 	print "Unlocking flash..."
     tn.write("unlock 0 0x%x\n" % flashsize)
-    buf = tn.read_until("Returned 0")
+    buf = tn.read_until("Returned 0",5)
 
     if verbose:
 	print "Writing new image..."
-- 
2.20.1