On Sat, Nov 15, 2008 at 11:00:13AM +0100, Peter Hettkamp wrote: > My previous patch does issue jtag_add_tlr() whenever > xsvf_add_statemove(TAP_TLR) > is called. Now, due to the side effects of jtag_add_tlr() this might not be > an entirely good idea :-(. Because at the end of many xsvf operations, there > is a call to xsvf_add_statemove(xsvf_to_tap[xendir]) or [xenddr], and it > seems that xendir and xenddr are "Test-Logic-Reset" by default. > They are, by default. But the xsvf documentation says the default should be RTI. The attached patchlet will fix this.
But after that, the xsvf player still does not program the xc9576 on my target board: > xsvf 0 xc.xsvf value captured during scan didn't pass the requested check: captured: 0x03fffe check_value: 0x000001 check_mask: 0x000003 in_handler reported a failed check TDO mismatch, aborting I suppose that the xsvf instructions that lead to the failed check are 00000000: XREPEAT(7) 32 00000002: XSTATE(18) Test-Logic-Reset 00000004: XSTATE(18) Run-Test/Idle 00000006: XRUNTEST(4) 0 0000000b: XSIR(2) 8 0xfe #IDCODE 0000000e: XSDRSIZE(8) 32 00000013: XTDOMASK(1) 0x0fffffff 00000018: XSDRTDO(9) 0x00000000, 0xf9604093 00000021: XSIR(2) 8 0xff #BYPASS 00000024: XSIR(2) 8 0xe8 #ISPEN 00000027: XSDRSIZE(8) 6 0000002c: XTDOMASK(1) 0x00 0000002e: XSDRTDO(9) 05, 00 00000031: XSIR(2) 8 0xed #FBULK 00000034: XRUNTEST(4) 200000 00000039: XSDRSIZE(8) 18 0000003e: XTDOMASK(1) 0x000000 00000042: XSDRTDO(9) 0x03ffff, 0x000000 00000049: XTDOMASK(1) 0x000003 0000004d: XSDRTDO(9) 0x03fffd, 0x000001 .... Could the error be due to the player disregarding the XREPEAT instruction? Regards, Peter -- "Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it ;)" (Linus Torvalds, about his failing hard drive on linux.cs.helsinki.fi)
Index: src/xsvf/xsvf.c
===================================================================
--- src/xsvf/xsvf.c (revision 1172)
+++ src/xsvf/xsvf.c (working copy)
@@ -57,8 +57,8 @@
int xruntest = 0; /* number of TCK cycles / microseconds */
int xrepeat = 0x20; /* number of XC9500 retries */
-int xendir = 0;
-int xenddr = 0;
+int xendir = 1; /* default values for end-IR and end-DR should be
TAP_RTI */
+int xenddr = 1; /* TAP_RTI is coded as 0x01, not 0, in xsvf */
enum tap_state xsvf_to_tap[] =
{
pgpCPazRLQNkN.pgp
Description: PGP signature
_______________________________________________ Openocd-development mailing list [email protected] https://lists.berlios.de/mailman/listinfo/openocd-development
