2010-10-10 16:41:11 -05:00
|
|
|
# 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...)
|
|
|
|
|
2014-06-19 05:21:21 -05:00
|
|
|
if [catch {transport select}] {
|
2015-02-24 15:19:15 -06:00
|
|
|
echo "Error: unable to select a session transport. Can't continue."
|
|
|
|
shutdown
|
2014-06-19 05:21:21 -05:00
|
|
|
}
|
|
|
|
|
2010-10-10 16:41:11 -05:00
|
|
|
proc swj_newdap {chip tag args} {
|
2019-01-27 08:49:34 -06:00
|
|
|
if [using_jtag] {
|
2013-09-28 05:23:15 -05:00
|
|
|
eval jtag newtap $chip $tag $args
|
|
|
|
} elseif [using_swd] {
|
|
|
|
eval swd newdap $chip $tag $args
|
2019-01-27 08:49:34 -06:00
|
|
|
} else {
|
|
|
|
echo "Error: transport '[ transport select ]' not supported by swj_newdap"
|
|
|
|
shutdown
|
2013-09-28 05:23:15 -05:00
|
|
|
}
|
2010-10-10 16:41:11 -05:00
|
|
|
}
|