Auto-select JTAG transport when appropriate

I looked through all the target configs after stripping comments and
such from them with sed to see what jtag-specific commands can appear
first, and it looks like all the meaningful combinations should be
covered.

Change-Id: I8d543407b7f4ac8aca7354ecd50e841c8a04d5f3
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/2179
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
__archive__
Paul Fertser 2014-06-19 14:21:21 +04:00 committed by Andreas Fritiofson
parent 12e9f6292b
commit 335bafbb25
2 changed files with 31 additions and 0 deletions

View File

@ -87,6 +87,32 @@ proc measure_clk {} {
add_help_text measure_clk "Runs a test to measure the JTAG clk. Useful with RCLK / RTCK." add_help_text measure_clk "Runs a test to measure the JTAG clk. Useful with RCLK / RTCK."
proc default_to_jtag { f args } {
if [catch {transport select} current_transport] {
echo "Info : session transport was not selected, defaulting to JTAG"
transport select jtag
eval $f $args
} {
error "session transport is \"$current_transport\" but your config requires JTAG"
}
}
proc jtag args {
eval default_to_jtag jtag $args
}
proc jtag_rclk args {
eval default_to_jtag jtag_rclk $args
}
proc jtag_ntrst_delay args {
eval default_to_jtag jtag_ntrst_delay $args
}
proc jtag_ntrst_assert_width args {
eval default_to_jtag jtag_ntrst_assert_width $args
}
# BEGIN MIGRATION AIDS ... these adapter operations originally had # BEGIN MIGRATION AIDS ... these adapter operations originally had
# JTAG-specific names despite the fact that the operations were not # JTAG-specific names despite the fact that the operations were not
# specific to JTAG, or otherewise had troublesome/misleading names. # specific to JTAG, or otherewise had troublesome/misleading names.

View File

@ -18,6 +18,11 @@
# split out "chip" and "tag" so we can someday handle # split out "chip" and "tag" so we can someday handle
# them more uniformly irlen too...) # them more uniformly irlen too...)
if [catch {transport select}] {
echo "Info : session transport was not selected, defaulting to JTAG"
transport select jtag
}
proc swj_newdap {chip tag args} { proc swj_newdap {chip tag args} {
if {[using_jtag]} { eval jtag newtap $chip $tag $args } if {[using_jtag]} { eval jtag newtap $chip $tag $args }
if {[using_swd]} { eval swd newdap $chip $tag $args } if {[using_swd]} { eval swd newdap $chip $tag $args }