On Sunday 27 September 2009, Øyvind Harboe wrote:
> > Comments?
> 
> TAP_RESET is special. Navigating to this state
> can only be done via jtag_add_tlr().

Or equivalently jtag_add_statemove(TAP_RESET), which
calls jtag_add_tlr() in turn.

There's bit of a maze at the intermediate levels, which
to a first approximation map add_tlr() to a driver level
JTAG_STATEMOVE and everything else to JTAG_PATHMOVE.


> No assumptions 
> should be made about the JTAG TAP state as

.... e.g. by not calling tap_get_state() ...


> jtag_add_tlr() supports being invoked when the state has
> been modified by some external event.

That doesn't help as much as I'd like, since it's a few
levels above where symptoms start to appear.


My concern is that it looks like most of the JTAG adapter
("interface") drivers have a bug in this area.  STATEMOVE
handler code for most drivers seems to assume the current
recorded TAP state is correct in all cases ... instead of
ignoring it for TAP_RESET transitions.  (The first few
drivers, in alphabetical order, are all wrong in how they
handle that case ...)

Fixing around a dozen driver seems messy, but perhaps
unavoidable.  Do you think I should check in $SUBJECT
and have us seek patches and testing for all of the
other drivers?

- Dave

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to