riscv-openocd/src/jtag
David Brownell 7cd2617384 initial SWD transport (SWD infrastructure #2)
This piggy backs on JTAG so it's not yet pretty, but that
seems unavoidable so far given today's OpenOCD internals.

SWD init and data transfer  are unfinished and untested, but
that should cause no regressions, and will be addressed by
the time drivers start using this infrastructure.  Checking
in whould get the code working better sooner, and turn up any
structural/architectural issues while they're easier to fix.

The debug adapter drivers will provide simple SWD driver
structs with methods that kick in as needed (instead of JTAG).
So far just one adapter driver has been updated (not yet
ready to use or circulate).

The biggest issues are probably
  - fault handling, where the ARM Debug Interface V5 pipelining
    needs work in both JTAG and SWD modes and
  - missing  rewrite of block I/O code to work on both of our
Cortex-ready transports (Current code is  hard-wired to JTAG);
relates also to the pipelining issue.
  - omitted support to activate/deactivate SWO/SWV trace (this is
    technically trivial, but configuring what to trace is NOT.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
----

 doc/openocd.texi        |   17 ++
 src/jtag/core.c         |    3
 src/jtag/interface.h    |    4
 src/jtag/jtag.h         |    2
 src/jtag/swd.h          |  114 +++++++++++++++++++
 src/jtag/tcl.c          |    2
 src/target/adi_v5_swd.c |  281 ++++++++++++++++++++++++++++++++++++++++++++++--
 src/target/arm_adi_v5.c |    8 +
 src/target/arm_adi_v5.h |    3
 9 files changed, 425 insertions(+), 9 deletions(-)
2010-12-24 18:50:41 -08:00
..
drivers Fix for compilation failure amt_jtagaccel.c 2010-12-16 08:32:30 +01:00
minidriver minidriver: fix inline capability of minidriver 2009-12-08 10:29:58 +01:00
minidummy jtag: simplify jtag_add_plain_ir/dr_scan 2010-03-08 08:12:26 +01:00
zy1000 jtag: getting the JTAG speed can fail 2010-12-08 08:43:52 +01:00
Makefile.am build: add common.mk 2010-11-18 14:05:56 +00:00
adapter.c adapter.c: missing space in handle_interface_command 2010-07-12 09:34:03 +01:00
commands.c JTAG/COMMANDS: review scope of functions 2010-04-10 22:01:16 +08:00
commands.h jtag: rename JTAG_MOVESTATE to JTAG_TLR_RESET 2010-06-07 15:08:30 +02:00
core.c initial SWD transport (SWD infrastructure #2) 2010-12-24 18:50:41 -08:00
driver.h split "interface" commands from "jtag" ones 2010-03-11 09:47:47 -08:00
interface.c move ARRAY_SIZE macro to types.h 2009-11-16 09:58:11 -08:00
interface.h initial SWD transport (SWD infrastructure #2) 2010-12-24 18:50:41 -08:00
interfaces.c Add support for Bus Pirate as a JTAG adapter. 2010-03-11 11:35:50 -08:00
interfaces.h change #include "interface.h" to <jtag/interface.h> 2009-12-03 04:22:52 -08:00
jtag.h initial SWD transport (SWD infrastructure #2) 2010-12-24 18:50:41 -08:00
minidriver.h jtag: simplify jtag_add_plain_ir/dr_scan 2010-03-08 08:12:26 +01:00
startup.tcl TCL scripts: replace "puts" with "echo" 2010-11-09 08:12:51 +01:00
swd.h initial SWD transport (SWD infrastructure #2) 2010-12-24 18:50:41 -08:00
tcl.c initial SWD transport (SWD infrastructure #2) 2010-12-24 18:50:41 -08:00
transport.c "transport select" returns Jim value 2010-07-24 14:38:46 -04:00
transport.h initial "transport" framework 2010-07-02 16:45:28 -04:00