On Sunday 17 January 2010, Øyvind Harboe wrote: > I have given this patch some more thought and it breaks > the JTAG API and jtag_add_pathmove() API/driver layer > in particular.
$SUBJECT includes three patches ... which one do you mean? Also, in what sense does it "break" anything? As I noted, this has been working fine for some time on FT2232. So in at least that straightforward sense, it breaks nothing. > We should discuss more post 0.4(I need to choose battles > before then), OK -- but, I'll get my initial response out there now, like your initial query is. > but essentially the interface_ layer should be *told* > what the TAP state is after a given TMS sequence. I don't follow. For starters, > > +int jtag_add_tms_seq(unsigned nbits, uint8_t *seq, enum tap_state t); does pass a state. One issue with that state is of course the reality that when switching into SWD mode, or resetting a SWD link, there *IS* no TAP, or TAP state, that's relevant. The presumption that "TAP state" is meaningful at all times would be a conceptual bug. One that must not be continued by any driver which supports SWD. And that's clearly not documented as a substitute for the error checks in current set of upper level JTAG state calls. Which is why the updated pathmove()/statemove() logic does not use that call ... it uses the low level primitives, and continues using the current TAP state tracking mechanism. > The > current jtag_add_pathmove() passes this information to > the interface_ layer. I just looked at patch #2 of the three, which modifies that to use the new primitive when the underlying JTAG driver supports it. (Eliminating redundancy in those interface calls.) And I don't see how this changes anything of note. There is a mid-layer representation of the current state (after executing any queued ops), and that's still present ... and still visible to the interface layer. - Dave _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development