jtag: adapter: rework adapter related commands
[fw/openocd] / src / jtag / startup.tcl
index 4153118c3a68ad2b8c0ecbce4ead0bfc485d8aff..440d8ea7400a9e7d3c2b7b0a863a83a2a95a65f3 100644 (file)
@@ -21,7 +21,9 @@ proc jtag_init {} {
 # startup (at OpenOCD server startup, when JTAG may not yet work); and
 # potentially more (for reset types like cold, warm, etc)
 proc init_reset { mode } {
-       jtag arp_init-reset
+       if {[using_jtag]} {
+               jtag arp_init-reset
+       }
 }
 
 #########
@@ -79,12 +81,38 @@ proc srst_asserted {} {
 # measure actual JTAG clock
 proc measure_clk {} {
        set start_time [ms];
-       runtest 10000000; 
-       echo "Running at more than [expr 10000.0 / ([ms]-$start_time)] kHz";
+        set iterations 10000000;
+       runtest $iterations;
+       echo "Running at more than [expr $iterations.0 / ([ms]-$start_time)] kHz";
 }
 
 add_help_text measure_clk "Runs a test to measure the JTAG clk. Useful with RCLK / RTCK."
 
+proc default_to_jtag { f args } {
+       set current_transport [transport select]
+       if {[using_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
 # JTAG-specific names despite the fact that the operations were not
 # specific to JTAG, or otherewise had troublesome/misleading names.
@@ -92,18 +120,34 @@ add_help_text measure_clk "Runs a test to measure the JTAG clk. Useful with RCLK
 # FIXME phase these aids out after about April 2011
 #
 proc jtag_khz args {
-       echo "DEPRECATED! use 'adapter_khz' not 'jtag_khz'"
-       eval adapter_khz $args
+       echo "DEPRECATED! use 'adapter speed' not 'jtag_khz'"
+       eval adapter speed $args
 }
 
 proc jtag_nsrst_delay args {
-       echo "DEPRECATED! use 'adapter_nsrst_delay' not 'jtag_nsrst_delay'"
-       eval adapter_nsrst_delay $args
+       echo "DEPRECATED! use 'adapter srst delay' not 'jtag_nsrst_delay'"
+       eval adapter srst delay $args
 }
 
 proc jtag_nsrst_assert_width args {
-       echo "DEPRECATED! use 'adapter_nsrst_assert_width' not 'jtag_nsrst_assert_width'"
-       eval adapter_nsrst_assert_width $args
+       echo "DEPRECATED! use 'adapter srst pulse_width' not 'jtag_nsrst_assert_width'"
+       eval adapter srst pulse_width $args
+}
+
+proc jtag_reset args {
+       echo "DEPRECATED! use 'adapter [de]assert' not 'jtag_reset'"
+       switch $args {
+               "0 0"
+                       {eval adapter deassert trst deassert srst}
+               "0 1"
+                       {eval adapter deassert trst assert srst}
+               "1 0"
+                       {eval adapter assert trst deassert srst}
+               "1 1"
+                       {eval adapter assert trst assert srst}
+               default
+                       {return -code 1 -level 1 "jtag_reset: syntax error"}
+       }
 }
 
 # stlink migration helpers
@@ -132,4 +176,39 @@ proc stlink args {
        eval hla $args
 }
 
+proc adapter_khz args {
+       echo "DEPRECATED! use 'adapter speed' not 'adapter_khz'"
+       eval adapter speed $args
+}
+
+proc adapter_name args {
+       echo "DEPRECATED! use 'adapter name' not 'adapter_name'"
+       eval adapter name $args
+}
+
+proc adapter_nsrst_delay args {
+       echo "DEPRECATED! use 'adapter srst delay' not 'adapter_nsrst_delay'"
+       eval adapter srst delay $args
+}
+
+proc adapter_nsrst_assert_width args {
+       echo "DEPRECATED! use 'adapter srst pulse_width' not 'adapter_nsrst_assert_width'"
+       eval adapter srst pulse_width $args
+}
+
+proc interface args {
+       echo "DEPRECATED! use 'adapter driver' not 'interface'"
+       eval adapter driver $args
+}
+
+proc  interface_transports args {
+       echo "DEPRECATED! use 'adapter transports' not 'interface_transports'"
+       eval adapter transports $args
+}
+
+proc  interface_list args {
+       echo "DEPRECATED! use 'adapter list' not 'interface_list'"
+       eval adapter list $args
+}
+
 # END MIGRATION AIDS