X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2Fgplay-arm.py;h=f8dd394cdae4288f407f1d7abba5cf4d847c600a;hp=f216a1fa925c91ac6634aa5646f963944ceb55b5;hb=d93b8f94f1b579f667ec449ad1738a62f80db4a0;hpb=69d45b39c9ab9f3e814dea7462773e42f461ce22;ds=sidebyside diff --git a/client/gplay-arm.py b/client/gplay-arm.py index f216a1f..f8dd394 100755 --- a/client/gplay-arm.py +++ b/client/gplay-arm.py @@ -27,6 +27,89 @@ def regwratchet(num,hi=13,lo=0): for x in xrange(lo,hi+1): client.ARMset_register(x,num) +def test(): + print "ARM JTAG Test Unit" + print " Chip ID", hex(client.ARMident()) + print client.ARMidentstr() + print " Debug State: ",hex(client.ARMget_dbgstate()) + print " Debug CTRL: ",hex(client.ARMget_dbgctrl()) + print + print "Testing Register Read/Writes" + print " Storing old values" + originalregs = [client.ARMget_register(x) for x in xrange(16)] + + print "Simple test" + test = [None for x in xrange(15)] + control = [x for x in xrange(15)] + for x in xrange(15): + client.ARMset_register(x,control[x]) + test[x] = client.ARMget_register(x) + if control != test: + print "FAIL" + print "Control:",control + print "Test: ",test + + print "A little harder..." + test = [None for x in xrange(15)] + control = [4*x for x in xrange(15)] + for x in xrange(15): + client.ARMset_register(x,control[x]) + test[x] = client.ARMget_register(x) + if control != test: + print "FAIL" + print "Control:",control + print "Test: ",test + + print "Complex testing 1" + for y in xrange(0,0xffffffff,0x10101010): + test = [None for x in xrange(15)] + control = [y for x in xrange(15)] + print " Test parms: ",control + for x in xrange(15): + client.ARMset_register(x,control[x]) + test[x] = client.ARMget_register(x) + if control != test: + print "FAIL" + print "Control:",control + print "Test: ",test + + print "Complex testing 2" + for y in xrange(0,0xffffffff,101010101): + test = [None for x in xrange(15)] + control = [y for x in xrange(15)] + print " Test parms: ",control + for x in xrange(15): + client.ARMset_register(x,control[x]) + test[x] = client.ARMget_register(x) + if control != test: + print "FAIL" + print "Control:",control + print "Test: ",test + + test = [None for x in xrange(15)] + control = [0x100*x for x in xrange(15)] + for x in xrange(15): + client.ARMset_register(x,control[x]) + test[x] = client.ARMget_register(x) + if control != test: + print "FAIL" + print "Control:",control + print "Test: ",test + + print "Resetting original register values..." + for x in xrange(16): + client.ARMset_register(x,originalregs[x]) + regs = [client.ARMget_register(x) for x in xrange(16)] + print "Original: \t",originalregs + print "Now (r15 may differ:\t",regs + + print "Testing setting and movement of PC between instructions" + #client.ARMsetPC(0x0) + print "PC:",client.ARMgetPC() + print "PC:",client.ARMgetPC() + print "PC:",client.ARMgetPC() + print "PC:",client.ARMgetPC() + def test1(): global data print "\n\nTesting JTAG for ARM\n"