diff options
author | David Brownell <dbrownell@users.sourceforge.net> | 2010-10-10 14:41:11 -0700 |
---|---|---|
committer | David Brownell <db@helium.(none)> | 2010-10-10 14:41:11 -0700 |
commit | e3773e3e3d1f1ee0dbb0b69e8babe8419784d1c1 (patch) | |
tree | 5e9482cf112afba4fc9ca093bdf2f7c2a141ce99 /tcl/target/swj-dp.tcl | |
parent | 3864da1ab817acab24c41366d627da9337a7993d (diff) | |
download | openocd+libswd-e3773e3e3d1f1ee0dbb0b69e8babe8419784d1c1.tar.gz openocd+libswd-e3773e3e3d1f1ee0dbb0b69e8babe8419784d1c1.tar.bz2 openocd+libswd-e3773e3e3d1f1ee0dbb0b69e8babe8419784d1c1.tar.xz openocd+libswd-e3773e3e3d1f1ee0dbb0b69e8babe8419784d1c1.zip |
swj-dp.tcl (SWD infrastructure #1)
Provide new helper proc that can set up either an SWD or JTAG DAP
based on the transport which is in use -- mostly for SWJ-DP.
Also update some SWJ-DP based chips/targets to use it. The goal
is making SWD-vs-JTAG transparent in most places. SWJ-DP based chips
really need this flexible configuration to cope with debug adapters
that support different transports, without needing new target configs
for each transport or adapter.
For JTAG-DP, callers will use "jtag newtap" directly, as today; only
one chip-level transport option exists.
For SW-DP (e.g. LPC1[13]xx or EFM32, they'll use "swd newdap" directly
(part of an upcoming SWD transport patch). Again, only one transport
option exists, so hard-wiring is appropriate there.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Diffstat (limited to 'tcl/target/swj-dp.tcl')
-rw-r--r-- | tcl/target/swj-dp.tcl | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tcl/target/swj-dp.tcl b/tcl/target/swj-dp.tcl new file mode 100644 index 00000000..377b7b5f --- /dev/null +++ b/tcl/target/swj-dp.tcl @@ -0,0 +1,25 @@ +# ARM Debug Interface V5 (ADI_V5) utility +# ... Mostly for SWJ-DP (not SW-DP or JTAG-DP, since +# SW-DP and JTAG-DP targets don't need to switch based +# on which transport is active. +# +# declare a JTAG or SWD Debug Access Point (DAP) +# based on the transport in use with this session. +# You can't access JTAG ops when SWD is active, etc. + +# params are currently what "jtag newtap" uses +# because OpenOCD internals are still strongly biased +# to JTAG .... but for SWD, "irlen" etc are ignored, +# and the internals work differently + +# for now, ignore non-JTAG and non-SWD transports +# (e.g. initial flash programming via SPI or UART) + +# split out "chip" and "tag" so we can someday handle +# them more uniformly irlen too...) + +proc swj_newdap {chip tag args} { +set tran [transport select] +if [string equal $tran "jtag"] { eval jtag newtap $chip $tag $args} +if [string equal $tran "swd"] { eval swd newdap $chip $tag $args } +} |