aboutsummaryrefslogtreecommitdiff
path: root/src/jtag/startup.tcl
diff options
context:
space:
mode:
authorSteve Marple <stevemarple@googlemail.com>2022-05-04 22:51:48 +0100
committerAntonio Borneo <borneo.antonio@gmail.com>2022-08-15 13:24:22 +0000
commit82fd4005427b6774a754b791bdf384f3ef45072d (patch)
tree57e3095074f8fff8d9fc1d1a209f7501c90b984b /src/jtag/startup.tcl
parent3adbec9aab95808222071eb09014f28fbb6ad1be (diff)
downloadriscv-openocd-82fd4005427b6774a754b791bdf384f3ef45072d.zip
riscv-openocd-82fd4005427b6774a754b791bdf384f3ef45072d.tar.gz
riscv-openocd-82fd4005427b6774a754b791bdf384f3ef45072d.tar.bz2
jtag/adapter: Add command 'adapter gpio'
Most adapters define their own commands to obtain the GPIO number and other GPIO configuration information such as chip number, output drive type, active high/low. Define a general command 'adapter gpio' as replacement for the driver-specific ones. Change-Id: I1ca9ca94f0c7df5713172e9f62ffb0ad64e9ee97 Signed-off-by: Steve Marple <stevemarple@googlemail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6967 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src/jtag/startup.tcl')
-rw-r--r--src/jtag/startup.tcl60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/jtag/startup.tcl b/src/jtag/startup.tcl
index 2383420..8791611 100644
--- a/src/jtag/startup.tcl
+++ b/src/jtag/startup.tcl
@@ -122,6 +122,66 @@ proc jtag_ntrst_assert_width args {
#
# FIXME phase these aids out after some releases
#
+lappend _telnet_autocomplete_skip adapter_gpio_helper_with_caller
+# Helper for deprecated driver functions that should call "adapter gpio XXX".
+
+# Call this function as:
+# adapter_gpio_helper_with_caller caller sig_name
+# adapter_gpio_helper_with_caller caller sig_name gpio_num
+# adapter_gpio_helper_with_caller caller sig_name chip_num gpio_num
+proc adapter_gpio_helper_with_caller {caller sig_name args} {
+ echo "DEPRECATED! use 'adapter gpio $sig_name' not '$caller'"
+ switch [llength $args] {
+ 0 {}
+ 1 {eval adapter gpio $sig_name $args}
+ 2 {eval adapter gpio $sig_name [lindex $args 1] -chip [lindex $args 0]}
+ default {return -code 1 -level 1 "$caller: syntax error"}
+ }
+ eval adapter gpio $sig_name
+}
+
+lappend _telnet_autocomplete_skip adapter_gpio_helper
+# Call this function as:
+# adapter_gpio_helper sig_name
+# adapter_gpio_helper sig_name gpio_num
+# adapter_gpio_helper sig_name chip_num gpio_num
+proc adapter_gpio_helper {sig_name args} {
+ set caller [lindex [info level -1] 0]
+ eval adapter_gpio_helper_with_caller {"$caller"} $sig_name $args
+}
+
+lappend _telnet_autocomplete_skip adapter_gpio_jtag_nums_with_caller
+# Helper for deprecated driver functions that implemented jtag_nums
+proc adapter_gpio_jtag_nums_with_caller {caller tck_num tms_num tdi_num tdo_num} {
+ echo "DEPRECATED! use 'adapter gpio tck; adapter gpio tms; adapter gpio tdi; adapter gpio tdo' not '$caller'"
+ eval adapter gpio tck $tck_num
+ eval adapter gpio tms $tms_num
+ eval adapter gpio tdi $tdi_num
+ eval adapter gpio tdo $tdo_num
+}
+
+lappend _telnet_autocomplete_skip adapter_gpio_jtag_nums
+# Helper for deprecated driver functions that implemented jtag_nums
+proc adapter_gpio_jtag_nums {args} {
+ set caller [lindex [info level -1] 0]
+ eval adapter_gpio_jtag_nums_with_caller {"$caller"} $args
+}
+
+lappend _telnet_autocomplete_skip adapter_gpio_swd_nums_with_caller
+# Helper for deprecated driver functions that implemented swd_nums
+proc adapter_gpio_swd_nums_with_caller {caller swclk_num swdio_num} {
+ echo "DEPRECATED! use 'adapter gpio swclk; adapter gpio swdio' not '$caller'"
+ eval adapter gpio swclk $swclk_num
+ eval adapter gpio swdio $swdio_num
+}
+
+lappend _telnet_autocomplete_skip adapter_gpio_swd_nums
+# Helper for deprecated driver functions that implemented jtag_nums
+proc adapter_gpio_swd_nums {args} {
+ set caller [lindex [info level -1] 0]
+ eval adapter_gpio_swd_nums_with_caller {"$caller"} $args
+}
+
lappend _telnet_autocomplete_skip jtag_reset
proc jtag_reset args {
echo "DEPRECATED! use 'adapter \[de\]assert' not 'jtag_reset'"