On Monday 22 June 2009, Øyvind Harboe wrote:
> My favourite is to introduce a serialized protocol for JTAG that
> can work over TCP/IP, pipes, even fn calls...

Such a thing would be useful for a more functional USB
interface to JTAG adapters.  Consider some microcontroller
using a (high speed!) USB interface and accepting those
serialized JTAG messages.  TMS transitions; shift this
data in, return (or discard) the data shifted out; and
some GPIO-ish commands for SRST and TRST.  That'd be the
bare minimum.

Such a protocol should also provide two more things:

 - The immediately-useful one would be offloaded polling.
   As in:  issue this command; if F(result) do this else
   do that; continue for more commands.  And the "do..."
   would involve reporting some data back.  Yes, that
   involves limited programmability...

 - The less-immediately-useful one would be collecting
   such data for non-JTAG signals, in support of debug
   instrumentation and event triggering.   EMU0/EMU1/...
   on TI's JTAG connectors.  Or, more fully documented,
   ARM or Nexus trace connectors.

Another way to think of this is as an *OPEN* protocol
for talking with JTAG adapters.   A soft one, which
could more easily evolve over time (e.g. to deal with
the upcoming 2-wire JTAG flavors.)  The FT2232 is one
vendor-specific flavor of "open" ... and this thread
highlights problems derived from that vendor.

Downside:  current tools vendors might prefer to have
closed protocols there, as aids to vendor lockin.  It's
easier to sell "Our Adapter(s) + Our Software = $$$$$".


> This has been discussed before and could be *very* useful
> for other stuff, including remote access to targets for debug
> purposes...
> 
> OpenOCD would itself also implement this as a server
> to forwarding it to the underlying driver, acting as the server.

That's a second model though.  Draw a line, if you will,
between a "smart JTAG" level server, and a target level
service which understands how to single step ARM9TDMI
versus Cortex-M3, etc; or provides good boundary
scan debugging/diagnostic tools; etc.

Today's OpenOCD handles both services (and more).
If you split out "Smart JTAG", would OpenOCD be
the split-out part ... or the target level service?

I'd lean towards the latter.

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

Reply via email to