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[] =
 {

Attachment: pgpCPazRLQNkN.pgp
Description: PGP signature

_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to