X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2Fgoodfet.em260;h=ba383dc7c32a60be10ebde05dbb85c782d6456f3;hp=bc9454e27b9b7f87502c0e7ee5eb3bf2d5f2594b;hb=053fca013042a25eecdae93dc08955d6cc106468;hpb=68b3ba0e68376630d0ce37c80048b3c107661007 diff --git a/client/goodfet.em260 b/client/goodfet.em260 index bc9454e..ba383dc 100755 --- a/client/goodfet.em260 +++ b/client/goodfet.em260 @@ -3,8 +3,17 @@ #GoodFET SPI Flash Client #by Travis Goodspeed -#N.B., -#Might be Winbond W25x80-specific. +# Pinout: +# 1 MISO +# 2 VCC +# 3 MOSI +# 4 +# 5 !SS +# 6 +# 7 CLK +# 8 !HOST_INT +# 9 GND +# 11 !WAKE import sys; import binascii; @@ -16,12 +25,14 @@ from intelhex import IntelHex; if(len(sys.argv)==1): print "Usage: %s verb [objects]\n" % sys.argv[0]; print "%s info" % sys.argv[0]; - print "%s dump $foo.rom [0x$start 0x$stop]" % sys.argv[0]; + print "%s test" % sys.argv[0]; + print "%s randtest" % sys.argv[0]; + #print "%s dump $foo.rom [0x$start 0x$stop]" % sys.argv[0]; #print "%s erase" % sys.argv[0]; #print "%s flash $foo.rom [0x$start 0x$stop]" % sys.argv[0]; #print "%s verify $foo.rom [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]; + print "%s poke 0x$adr 0x$val" % sys.argv[0]; sys.exit(); #Initialize FET and set baud rate @@ -33,14 +44,36 @@ client.SPIsetup(); #Dummy read. #Might read as all ones if chip has a startup delay. +client.EM260spiversion(); if(sys.argv[1]=="info"): - client.info(); + client.info(); if(sys.argv[1]=="test"): - print "Grabbing info three times." - client.info(); - client.info(); - client.info(); + print "Grabbing info three times." + client.info(); + client.info(); + client.info(); + + print "Some random numbers from EZSP." + for foo in range(0,4): + print "%04x" % client.rand16(); +if(sys.argv[1]=="randtest"): + print "Even Odd HEven LEven Hodd Lodd " + max=2**33; + foo=0; + while foo>8, + even&0xFF, + odd>>8, + odd&0xFF); + sys.stdout.flush() + foo=foo+1; + if(sys.argv[1]=="dump"): f = sys.argv[2]; start=0x0000; @@ -71,3 +104,13 @@ if(sys.argv[1]=="peek"): while start<=stop: print "%04x: %02x" % (start,client.peek8(start)); start=start+1; +if(sys.argv[1]=="poke"): + start=0x0000; + if(len(sys.argv)>2): + start=int(sys.argv[2],16); + val=0xde; + if(len(sys.argv)>3): + val=int(sys.argv[3],16); + print "Poking %02x to be %02x." % (start,val); + client.poke8(start,val); +