+++ David Brownell [2009-10-27 11:30 -0700]:
> On Tuesday 27 October 2009, Wookey wrote:
> > > Does that SVF version work OK?
> > 
> > No, but then I wouldn't expect it to in this case. The xsvf command
> > allows the specification of a tap which means that an XSVF file
> > nominally created for a single JTAG port still works with chained
> > ports (magically - I wasn't expecting openocd to be that clever). The
> > svf command doesn't have that option so the svf probably shouldn't
> > work. I need to re-arrange hardware in order to do the direct
> > side-by-side single-port test and/or generate files for chained-port
> > use.
> 
> Too bad; but understandable.  That was another reason to
> create XSVF, as I understand:   not just smaller programming
> files, but ones that didn't always need to be rewritten for
> each different scan chain.

Apparently. I see that SVF specifies a head and tail for the bypassed
devices, whilst XSVF gives the whole bitfield every time. I don't
yet understand why that is functionally different, as it seems to
amount to the same thing. But I am only on page 14 out of 25 :-)
 
> > > The deal is that until someone (maybe me) writes code
> > > to more or less morph sequences of XSTATE opcodes into
> > > a pathmove() command, the SVF code can do pathmoves
> > > while XSVF can't.
> >
> > OK. Could you elaborate a bit on why it used to work, but now the
> > above is needed.
> 
> As I understand now -- I wasn't paying attention to this
> stuff back when this changed! -- the core issue is that
> the JTAG primitives we used back then got changed.
> 
> There are now basically two primitives for passing through
> the JTAG stage machine:  (a) statemove, which moves from
> one "stable" state to another using a standardized path,
> and (b) pathmove, which does so using a caller-specified
> series of transitions.
> 
> Previously, I think the "between stable states" constraint
> wasn't consistently enforced.  Ergo rude errors, and the
> change.  The issue with XSVF is that it expects either a
> flavor of (a) or else a third way to move, (c) from one
> state to an adjacent one.  That's sort of what statemove
> used to do, sometimes.
> 
> Thing is, that XSVF adjacent-states motion is used as an
> encoding shorthand for (b)... and I checked the xsvfdump
> output of your XSVF file, so you're not being a rude
> exception to such a rule.  In fact it looks like your file
> is mostly using it for (a) too ... if there's a config
> option not to expand the state transitions like that,
> you might not need this bug fixed yet.

Hmm, I can look in the webpack but this the 'standard' output so
that's what I'd expect most people to be using. Interesting this is
the exact opposite of what I thought the problem was (the xilinx XSVF
is too detailed about the state transitions - I thought it was too
vague (from openocd's point of view) :-)

> So if I whack together a patch turning XSVF's (c) into
> the (b) which is supported, you could test it and maybe
> fix any goofs?

Yes, I think so (fighting chance at least).

Wookey
-- 
Principal hats:  iEndian - Balloonboard - Toby Churchill - Emdebian
http://wookware.org/
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to