projects
/
goodfet
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Faster SPI Flash dumping, but it's a bit ugly.
[goodfet]
/
client
/
goodfet.spiflash
diff --git
a/client/goodfet.spiflash
b/client/goodfet.spiflash
index
10750ff
..
571ddc4
100755
(executable)
--- a/
client/goodfet.spiflash
+++ b/
client/goodfet.spiflash
@@
-18,8
+18,8
@@
if(len(sys.argv)==1):
print "%s info" % sys.argv[0];
print "%s dump $foo.hex [0x$start 0x$stop]" % sys.argv[0];
print "%s erase" % sys.argv[0];
print "%s info" % sys.argv[0];
print "%s dump $foo.hex [0x$start 0x$stop]" % sys.argv[0];
print "%s erase" % sys.argv[0];
- print "%s
write
$foo.hex [0x$start 0x$stop]" % sys.argv[0];
- print "%s verify $foo.hex [0x$start 0x$stop]" % sys.argv[0];
+ print "%s
flash
$foo.hex [0x$start 0x$stop]" % sys.argv[0];
+
#
print "%s verify $foo.hex [0x$start 0x$stop]" % sys.argv[0];
print "%s peek 0x$start [0x$stop]" % sys.argv[0];
print "%s poke 0x$adr 0x$val" % sys.argv[0];
sys.exit();
print "%s peek 0x$start [0x$stop]" % sys.argv[0];
print "%s poke 0x$adr 0x$val" % sys.argv[0];
sys.exit();
@@
-56,16
+56,17
@@
if(sys.argv[1]=="test"):
if(sys.argv[1]=="info"):
data=client.SPIjedec();
if(sys.argv[1]=="info"):
data=client.SPIjedec();
- print "Ident as %s\nManufacturer: %02x %s\nType: %02x\nCapacity: %02x" % (
+ print "Ident as %s\nManufacturer: %02x %s\nType: %02x\nCapacity: %02x
(%i bytes)
" % (
client.SPIjedecstr(),
ord(data[1]),client.SPIjedecmanstr(),
ord(data[2]),
client.SPIjedecstr(),
ord(data[1]),client.SPIjedecmanstr(),
ord(data[2]),
- ord(data[3]));
+ ord(data[3]),
+ client.JEDECsize);
if(sys.argv[1]=="dump"):
f = sys.argv[2];
start=0x0000;
if(sys.argv[1]=="dump"):
f = sys.argv[2];
start=0x0000;
- stop=
0x100000; #TODO, adjust this by the JEDEC size parameter.
+ stop=
client.JEDECsize;
if(len(sys.argv)>3):
start=int(sys.argv[3],16);
if(len(sys.argv)>4):
if(len(sys.argv)>3):
start=int(sys.argv[3],16);
if(len(sys.argv)>4):
@@
-76,17
+77,18
@@
if(sys.argv[1]=="dump"):
i=start;
while i<=stop:
i=start;
while i<=stop:
- data=client.SPIpeekblock(i);
- if(i%0x1000==0):
-
print "Dumped %06x."%i;
+ data=client.SPIpeekblock(i
,255
);
+
#
if(i%0x1000==0):
+ print "Dumped %06x."%i;
for j in data:
for j in data:
- file.write(j);
+
if i<stop:
file.write(j);
i+=1;
file.close()
if(sys.argv[1]=="flash"):
f = sys.argv[2];
start=0x0000;
i+=1;
file.close()
if(sys.argv[1]=="flash"):
f = sys.argv[2];
start=0x0000;
- stop=0x100000; #TODO, adjust this by the JEDEC size parameter.
+ stop=client.JEDECsize;
+
if(len(sys.argv)>3):
start=int(sys.argv[3],16);
if(len(sys.argv)>4):
if(len(sys.argv)>3):
start=int(sys.argv[3],16);
if(len(sys.argv)>4):
@@
-107,7
+109,7
@@
if(sys.argv[1]=="flash"):
client.SPIpokebytes(i,bytes);
i+=chunksize;
client.SPIpokebytes(i,bytes);
i+=chunksize;
- if(i%0x100==0):
+ if(i%0x100
0
==0):
print "Flashed %06x."%i;
file.close()
print "Flashed %06x."%i;
file.close()