jtag/drivers/cmsis-dap: Restructure commands
[openocd.git] / src / jtag / startup.tcl
1 # SPDX-License-Identifier: GPL-2.0-or-later
2
3 # Defines basic Tcl procs for OpenOCD JTAG module
4
5 # Executed during "init". Can be overridden
6 # by board/target/... scripts
7 proc jtag_init {} {
8 if {[catch {jtag arp_init} err]!=0} {
9 # try resetting additionally
10 init_reset startup
11 }
12 }
13
14 # This reset logic may be overridden by board/target/... scripts as needed
15 # to provide a reset that, if possible, is close to a power-up reset.
16 #
17 # Exit requirements include: (a) JTAG must be working, (b) the scan
18 # chain was validated with "jtag arp_init" (or equivalent), (c) nothing
19 # stays in reset. No TAP-specific scans were performed. It's OK if
20 # some targets haven't been reset yet; they may need TAP-specific scans.
21 #
22 # The "mode" values include: halt, init, run (from "reset" command);
23 # startup (at OpenOCD server startup, when JTAG may not yet work); and
24 # potentially more (for reset types like cold, warm, etc)
25 proc init_reset { mode } {
26 if {[using_jtag]} {
27 jtag arp_init-reset
28 }
29 }
30
31 #########
32
33 # TODO: power_restore and power_dropout are currently neither
34 # documented nor supported.
35
36 proc power_restore {} {
37 echo "Sensed power restore, running reset init and halting GDB."
38 reset init
39
40 # Halt GDB so user can deal with a detected power restore.
41 #
42 # After GDB is halted, then output is no longer forwarded
43 # to the GDB console.
44 set targets [target names]
45 foreach t $targets {
46 # New event script.
47 $t invoke-event arp_halt_gdb
48 }
49 }
50
51 add_help_text power_restore "Overridable procedure run when power restore is detected. Runs 'reset init' by default."
52
53 proc power_dropout {} {
54 echo "Sensed power dropout."
55 }
56
57 #########
58
59 # TODO: srst_deasserted and srst_asserted are currently neither
60 # documented nor supported.
61
62 proc srst_deasserted {} {
63 echo "Sensed nSRST deasserted, running reset init and halting GDB."
64 reset init
65
66 # Halt GDB so user can deal with a detected reset.
67 #
68 # After GDB is halted, then output is no longer forwarded
69 # to the GDB console.
70 set targets [target names]
71 foreach t $targets {
72 # New event script.
73 $t invoke-event arp_halt_gdb
74 }
75 }
76
77 add_help_text srst_deasserted "Overridable procedure run when srst deassert is detected. Runs 'reset init' by default."
78
79 proc srst_asserted {} {
80 echo "Sensed nSRST asserted."
81 }
82
83 # measure actual JTAG clock
84 proc measure_clk {} {
85 set start_time [ms];
86 set iterations 10000000;
87 runtest $iterations;
88 set speed [expr "$iterations.0 / ([ms] - $start_time)"]
89 echo "Running at more than $speed kHz";
90 }
91
92 add_help_text measure_clk "Runs a test to measure the JTAG clk. Useful with RCLK / RTCK."
93
94 proc default_to_jtag { f args } {
95 set current_transport [transport select]
96 if {[using_jtag]} {
97 eval $f $args
98 } {
99 error "session transport is \"$current_transport\" but your config requires JTAG"
100 }
101 }
102
103 proc jtag args {
104 eval default_to_jtag jtag $args
105 }
106
107 proc jtag_rclk args {
108 eval default_to_jtag jtag_rclk $args
109 }
110
111 proc jtag_ntrst_delay args {
112 eval default_to_jtag jtag_ntrst_delay $args
113 }
114
115 proc jtag_ntrst_assert_width args {
116 eval default_to_jtag jtag_ntrst_assert_width $args
117 }
118
119 # BEGIN MIGRATION AIDS ... these adapter operations originally had
120 # JTAG-specific names despite the fact that the operations were not
121 # specific to JTAG, or otherwise had troublesome/misleading names.
122 #
123 # FIXME phase these aids out after some releases
124 #
125 lappend _telnet_autocomplete_skip adapter_gpio_helper_with_caller
126 # Helper for deprecated driver functions that should call "adapter gpio XXX".
127
128 # Call this function as:
129 # adapter_gpio_helper_with_caller caller sig_name
130 # adapter_gpio_helper_with_caller caller sig_name gpio_num
131 # adapter_gpio_helper_with_caller caller sig_name chip_num gpio_num
132 proc adapter_gpio_helper_with_caller {caller sig_name args} {
133 echo "DEPRECATED! use 'adapter gpio $sig_name' not '$caller'"
134 switch [llength $args] {
135 0 {}
136 1 {eval adapter gpio $sig_name $args}
137 2 {eval adapter gpio $sig_name [lindex $args 1] -chip [lindex $args 0]}
138 default {return -code 1 -level 1 "$caller: syntax error"}
139 }
140 eval adapter gpio $sig_name
141 }
142
143 lappend _telnet_autocomplete_skip adapter_gpio_helper
144 # Call this function as:
145 # adapter_gpio_helper sig_name
146 # adapter_gpio_helper sig_name gpio_num
147 # adapter_gpio_helper sig_name chip_num gpio_num
148 proc adapter_gpio_helper {sig_name args} {
149 set caller [lindex [info level -1] 0]
150 eval adapter_gpio_helper_with_caller {"$caller"} $sig_name $args
151 }
152
153 lappend _telnet_autocomplete_skip adapter_gpio_jtag_nums_with_caller
154 # Helper for deprecated driver functions that implemented jtag_nums
155 proc adapter_gpio_jtag_nums_with_caller {caller tck_num tms_num tdi_num tdo_num} {
156 echo "DEPRECATED! use 'adapter gpio tck; adapter gpio tms; adapter gpio tdi; adapter gpio tdo' not '$caller'"
157 eval adapter gpio tck $tck_num
158 eval adapter gpio tms $tms_num
159 eval adapter gpio tdi $tdi_num
160 eval adapter gpio tdo $tdo_num
161 }
162
163 lappend _telnet_autocomplete_skip adapter_gpio_jtag_nums
164 # Helper for deprecated driver functions that implemented jtag_nums
165 proc adapter_gpio_jtag_nums {args} {
166 set caller [lindex [info level -1] 0]
167 eval adapter_gpio_jtag_nums_with_caller {"$caller"} $args
168 }
169
170 lappend _telnet_autocomplete_skip adapter_gpio_swd_nums_with_caller
171 # Helper for deprecated driver functions that implemented swd_nums
172 proc adapter_gpio_swd_nums_with_caller {caller swclk_num swdio_num} {
173 echo "DEPRECATED! use 'adapter gpio swclk; adapter gpio swdio' not '$caller'"
174 eval adapter gpio swclk $swclk_num
175 eval adapter gpio swdio $swdio_num
176 }
177
178 lappend _telnet_autocomplete_skip adapter_gpio_swd_nums
179 # Helper for deprecated driver functions that implemented jtag_nums
180 proc adapter_gpio_swd_nums {args} {
181 set caller [lindex [info level -1] 0]
182 eval adapter_gpio_swd_nums_with_caller {"$caller"} $args
183 }
184
185 lappend _telnet_autocomplete_skip jtag_reset
186 proc jtag_reset args {
187 echo "DEPRECATED! use 'adapter \[de\]assert' not 'jtag_reset'"
188 switch $args {
189 "0 0"
190 {eval adapter deassert trst deassert srst}
191 "0 1"
192 {eval adapter deassert trst assert srst}
193 "1 0"
194 {eval adapter assert trst deassert srst}
195 "1 1"
196 {eval adapter assert trst assert srst}
197 default
198 {return -code 1 -level 1 "jtag_reset: syntax error"}
199 }
200 }
201
202 lappend _telnet_autocomplete_skip adapter_khz
203 proc adapter_khz args {
204 echo "DEPRECATED! use 'adapter speed' not 'adapter_khz'"
205 eval adapter speed $args
206 }
207
208 lappend _telnet_autocomplete_skip adapter_name
209 proc adapter_name args {
210 echo "DEPRECATED! use 'adapter name' not 'adapter_name'"
211 eval adapter name $args
212 }
213
214 lappend _telnet_autocomplete_skip adapter_nsrst_delay
215 proc adapter_nsrst_delay args {
216 echo "DEPRECATED! use 'adapter srst delay' not 'adapter_nsrst_delay'"
217 eval adapter srst delay $args
218 }
219
220 lappend _telnet_autocomplete_skip adapter_nsrst_assert_width
221 proc adapter_nsrst_assert_width args {
222 echo "DEPRECATED! use 'adapter srst pulse_width' not 'adapter_nsrst_assert_width'"
223 eval adapter srst pulse_width $args
224 }
225
226 lappend _telnet_autocomplete_skip interface
227 proc interface args {
228 echo "DEPRECATED! use 'adapter driver' not 'interface'"
229 eval adapter driver $args
230 }
231
232 lappend _telnet_autocomplete_skip interface_transports
233 proc interface_transports args {
234 echo "DEPRECATED! use 'adapter transports' not 'interface_transports'"
235 eval adapter transports $args
236 }
237
238 lappend _telnet_autocomplete_skip interface_list
239 proc interface_list args {
240 echo "DEPRECATED! use 'adapter list' not 'interface_list'"
241 eval adapter list $args
242 }
243
244 lappend _telnet_autocomplete_skip ftdi_location
245 proc ftdi_location args {
246 echo "DEPRECATED! use 'adapter usb location' not 'ftdi_location'"
247 eval adapter usb location $args
248 }
249
250 lappend _telnet_autocomplete_skip xds110_serial
251 proc xds110_serial args {
252 echo "DEPRECATED! use 'adapter serial' not 'xds110_serial'"
253 eval adapter serial $args
254 }
255
256 lappend _telnet_autocomplete_skip xds110_supply_voltage
257 proc xds110_supply_voltage args {
258 echo "DEPRECATED! use 'xds110 supply' not 'xds110_supply_voltage'"
259 eval xds110 supply $args
260 }
261
262 proc hla {cmd args} {
263 tailcall "hla $cmd" {*}$args
264 }
265
266 lappend _telnet_autocomplete_skip "hla newtap"
267 proc "hla newtap" {args} {
268 echo "DEPRECATED! use 'swj_newdap' not 'hla newtap'"
269 eval swj_newdap $args
270 }
271
272 lappend _telnet_autocomplete_skip ftdi_device_desc
273 proc ftdi_device_desc args {
274 echo "DEPRECATED! use 'ftdi device_desc' not 'ftdi_device_desc'"
275 eval ftdi device_desc $args
276 }
277
278 lappend _telnet_autocomplete_skip ftdi_serial
279 proc ftdi_serial args {
280 echo "DEPRECATED! use 'adapter serial' not 'ftdi_serial'"
281 eval adapter serial $args
282 }
283
284 lappend _telnet_autocomplete_skip ftdi_channel
285 proc ftdi_channel args {
286 echo "DEPRECATED! use 'ftdi channel' not 'ftdi_channel'"
287 eval ftdi channel $args
288 }
289
290 lappend _telnet_autocomplete_skip ftdi_layout_init
291 proc ftdi_layout_init args {
292 echo "DEPRECATED! use 'ftdi layout_init' not 'ftdi_layout_init'"
293 eval ftdi layout_init $args
294 }
295
296 lappend _telnet_autocomplete_skip ftdi_layout_signal
297 proc ftdi_layout_signal args {
298 echo "DEPRECATED! use 'ftdi layout_signal' not 'ftdi_layout_signal'"
299 eval ftdi layout_signal $args
300 }
301
302 lappend _telnet_autocomplete_skip ftdi_set_signal
303 proc ftdi_set_signal args {
304 echo "DEPRECATED! use 'ftdi set_signal' not 'ftdi_set_signal'"
305 eval ftdi set_signal $args
306 }
307
308 lappend _telnet_autocomplete_skip ftdi_get_signal
309 proc ftdi_get_signal args {
310 echo "DEPRECATED! use 'ftdi get_signal' not 'ftdi_get_signal'"
311 eval ftdi get_signal $args
312 }
313
314 lappend _telnet_autocomplete_skip ftdi_vid_pid
315 proc ftdi_vid_pid args {
316 echo "DEPRECATED! use 'ftdi vid_pid' not 'ftdi_vid_pid'"
317 eval ftdi vid_pid $args
318 }
319
320 lappend _telnet_autocomplete_skip ftdi_tdo_sample_edge
321 proc ftdi_tdo_sample_edge args {
322 echo "DEPRECATED! use 'ftdi tdo_sample_edge' not 'ftdi_tdo_sample_edge'"
323 eval ftdi tdo_sample_edge $args
324 }
325
326 lappend _telnet_autocomplete_skip remote_bitbang_host
327 proc remote_bitbang_host args {
328 echo "DEPRECATED! use 'remote_bitbang host' not 'remote_bitbang_host'"
329 eval remote_bitbang host $args
330 }
331
332 lappend _telnet_autocomplete_skip remote_bitbang_port
333 proc remote_bitbang_port args {
334 echo "DEPRECATED! use 'remote_bitbang port' not 'remote_bitbang_port'"
335 eval remote_bitbang port $args
336 }
337
338 lappend _telnet_autocomplete_skip openjtag_device_desc
339 proc openjtag_device_desc args {
340 echo "DEPRECATED! use 'openjtag device_desc' not 'openjtag_device_desc'"
341 eval openjtag device_desc $args
342 }
343
344 lappend _telnet_autocomplete_skip openjtag_variant
345 proc openjtag_variant args {
346 echo "DEPRECATED! use 'openjtag variant' not 'openjtag_variant'"
347 eval openjtag variant $args
348 }
349
350 lappend _telnet_autocomplete_skip parport_port
351 proc parport_port args {
352 echo "DEPRECATED! use 'parport port' not 'parport_port'"
353 eval parport port $args
354 }
355
356 lappend _telnet_autocomplete_skip parport_cable
357 proc parport_cable args {
358 echo "DEPRECATED! use 'parport cable' not 'parport_cable'"
359 eval parport cable $args
360 }
361
362 lappend _telnet_autocomplete_skip parport_write_on_exit
363 proc parport_write_on_exit args {
364 echo "DEPRECATED! use 'parport write_on_exit' not 'parport_write_on_exit'"
365 eval parport write_on_exit $args
366 }
367
368 lappend _telnet_autocomplete_skip parport_toggling_time
369 proc parport_toggling_time args {
370 echo "DEPRECATED! use 'parport toggling_time' not 'parport_toggling_time'"
371 eval parport toggling_time $args
372 }
373
374 lappend _telnet_autocomplete_skip jtag_dpi_set_port
375 proc jtag_dpi_set_port args {
376 echo "DEPRECATED! use 'jtag_dpi set_port' not 'jtag_dpi_set_port'"
377 eval jtag_dpi set_port $args
378 }
379
380 lappend _telnet_autocomplete_skip jtag_dpi_set_address
381 proc jtag_dpi_set_address args {
382 echo "DEPRECATED! use 'jtag_dpi set_address' not 'jtag_dpi_set_address'"
383 eval jtag_dpi set_address $args
384 }
385
386 lappend _telnet_autocomplete_skip jtag_vpi_set_port
387 proc jtag_vpi_set_port args {
388 echo "DEPRECATED! use 'jtag_vpi set_port' not 'jtag_vpi_set_port'"
389 eval jtag_vpi set_port $args
390 }
391
392 lappend _telnet_autocomplete_skip jtag_vpi_set_address
393 proc jtag_vpi_set_address args {
394 echo "DEPRECATED! use 'jtag_vpi set_address' not 'jtag_vpi_set_address'"
395 eval jtag_vpi set_address $args
396 }
397
398 lappend _telnet_autocomplete_skip jtag_vpi_stop_sim_on_exit
399 proc jtag_vpi_stop_sim_on_exit args {
400 echo "DEPRECATED! use 'jtag_vpi stop_sim_on_exit' not 'jtag_vpi_stop_sim_on_exit'"
401 eval jtag_vpi stop_sim_on_exit $args
402 }
403
404 lappend _telnet_autocomplete_skip presto_serial
405 proc presto_serial args {
406 echo "DEPRECATED! use 'presto serial' not 'presto_serial'"
407 eval presto serial $args
408 }
409
410 lappend _telnet_autocomplete_skip xlnx_pcie_xvc_config
411 proc xlnx_pcie_xvc_config args {
412 echo "DEPRECATED! use 'xlnx_pcie_xvc config' not 'xlnx_pcie_xvc_config'"
413 eval xlnx_pcie_xvc config $args
414 }
415
416 lappend _telnet_autocomplete_skip ulink_download_firmware
417 proc ulink_download_firmware args {
418 echo "DEPRECATED! use 'ulink download_firmware' not 'ulink_download_firmware'"
419 eval ulink download_firmware $args
420 }
421
422 lappend _telnet_autocomplete_skip vsllink_usb_vid
423 proc vsllink_usb_vid args {
424 echo "DEPRECATED! use 'vsllink usb_vid' not 'vsllink_usb_vid'"
425 eval vsllink usb_vid $args
426 }
427
428 lappend _telnet_autocomplete_skip vsllink_usb_pid
429 proc vsllink_usb_pid args {
430 echo "DEPRECATED! use 'vsllink usb_pid' not 'vsllink_usb_pid'"
431 eval vsllink usb_pid $args
432 }
433
434 lappend _telnet_autocomplete_skip vsllink_usb_serial
435 proc vsllink_usb_serial args {
436 echo "DEPRECATED! use 'adapter serial' not 'vsllink_usb_serial'"
437 eval adapter serial $args
438 }
439
440 lappend _telnet_autocomplete_skip vsllink_usb_bulkin
441 proc vsllink_usb_bulkin args {
442 echo "DEPRECATED! use 'vsllink usb_bulkin' not 'vsllink_usb_bulkin'"
443 eval vsllink usb_bulkin $args
444 }
445
446 lappend _telnet_autocomplete_skip vsllink_usb_bulkout
447 proc vsllink_usb_bulkout args {
448 echo "DEPRECATED! use 'vsllink usb_bulkout' not 'vsllink_usb_bulkout'"
449 eval vsllink usb_bulkout $args
450 }
451
452 lappend _telnet_autocomplete_skip vsllink_usb_interface
453 proc vsllink_usb_interface args {
454 echo "DEPRECATED! use 'vsllink usb_interface' not 'vsllink_usb_interface'"
455 eval vsllink usb_interface $args
456 }
457
458
459 lappend _telnet_autocomplete_skip bcm2835_gpio_helper
460 proc bcm2835_gpio_helper {sig_name args} {
461 set caller [lindex [info level -1] 0]
462 echo "DEPRECATED! use 'adapter gpio $sig_name' not '$caller'"
463 switch [llength $args] {
464 0 {}
465 1 {eval adapter gpio $sig_name $args -chip 0}
466 2 {eval adapter gpio $sig_name [lindex $args 1] -chip [lindex $args 0]}
467 default {return -code 1 -level 1 "$caller: syntax error"}
468 }
469 eval adapter gpio $sig_name
470 }
471
472 lappend _telnet_autocomplete_skip bcm2835gpio_jtag_nums
473 proc bcm2835gpio_jtag_nums {tck_num tms_num tdi_num tdo_num} {
474 echo "DEPRECATED! use 'adapter gpio tck; adapter gpio tms; adapter gpio tdi; adapter gpio tdo' not 'bcm2835gpio_jtag_nums'"
475 eval adapter gpio tck $tck_num -chip 0
476 eval adapter gpio tms $tms_num -chip 0
477 eval adapter gpio tdi $tdi_num -chip 0
478 eval adapter gpio tdo $tdo_num -chip 0
479 }
480
481 lappend _telnet_autocomplete_skip bcm2835gpio_tck_num
482 proc bcm2835gpio_tck_num args {
483 eval bcm2835_gpio_helper tck $args
484 }
485
486 lappend _telnet_autocomplete_skip bcm2835gpio_tms_num
487 proc bcm2835gpio_tms_num args {
488 eval bcm2835_gpio_helper tms $args
489 }
490
491 lappend _telnet_autocomplete_skip bcm2835gpio_tdo_num
492 proc bcm2835gpio_tdo_num args {
493 eval bcm2835_gpio_helper tdo $args
494 }
495
496 lappend _telnet_autocomplete_skip bcm2835gpio_tdi_num
497 proc bcm2835gpio_tdi_num args {
498 eval bcm2835_gpio_helper tdi $args
499 }
500
501 lappend _telnet_autocomplete_skip bcm2835gpio_swd_nums
502 proc bcm2835gpio_swd_nums {swclk_num swdio_num} {
503 echo "DEPRECATED! use 'adapter gpio swclk; adapter gpio swdio' not 'bcm2835gpio_swd_nums'"
504 eval adapter gpio swclk $swclk_num -chip 0
505 eval adapter gpio swdio $swdio_num -chip 0
506 }
507
508 lappend _telnet_autocomplete_skip bcm2835gpio_swclk_num
509 proc bcm2835gpio_swclk_num args {
510 eval bcm2835_gpio_helper swclk $args
511 }
512
513 lappend _telnet_autocomplete_skip bcm2835gpio_swdio_num
514 proc bcm2835gpio_swdio_num args {
515 eval bcm2835_gpio_helper swdio $args
516 }
517
518 lappend _telnet_autocomplete_skip bcm2835gpio_swdio_dir_num
519 proc bcm2835gpio_swdio_dir_num args {
520 eval bcm2835_gpio_helper swdio_dir $args
521 }
522
523 lappend _telnet_autocomplete_skip bcm2835gpio_srst_num
524 proc bcm2835gpio_srst_num args {
525 eval bcm2835_gpio_helper srst $args
526 }
527
528 lappend _telnet_autocomplete_skip bcm2835gpio_trst_num
529 proc bcm2835gpio_trst_num args {
530 eval bcm2835_gpio_helper trst $args
531 }
532
533 lappend _telnet_autocomplete_skip "bcm2835gpio jtag_nums"
534 proc "bcm2835gpio jtag_nums" {tck_num tms_num tdi_num tdo_num} {
535 echo "DEPRECATED! use 'adapter gpio tck; adapter gpio tms; adapter gpio tdi; adapter gpio tdo' not 'bcm2835gpio jtag_nums'"
536 eval adapter gpio tck $tck_num -chip 0
537 eval adapter gpio tms $tms_num -chip 0
538 eval adapter gpio tdi $tdi_num -chip 0
539 eval adapter gpio tdo $tdo_num -chip 0
540 }
541
542 lappend _telnet_autocomplete_skip "bcm2835gpio tck_num"
543 proc "bcm2835gpio tck_num" args {
544 eval bcm2835_gpio_helper tck $args
545 }
546
547 lappend _telnet_autocomplete_skip "bcm2835gpio tms_num"
548 proc "bcm2835gpio tms_num" args {
549 eval bcm2835_gpio_helper tms $args
550 }
551
552 lappend _telnet_autocomplete_skip "bcm2835gpio tdo_num"
553 proc "bcm2835gpio tdo_num" args {
554 eval bcm2835_gpio_helper tdo $args
555 }
556
557 lappend _telnet_autocomplete_skip "bcm2835gpio tdi_num"
558 proc "bcm2835gpio tdi_num" args {
559 eval bcm2835_gpio_helper tdi $args
560 }
561
562 lappend _telnet_autocomplete_skip "bcm2835gpio swd_nums"
563 proc "bcm2835gpio swd_nums" {swclk_num swdio_num} {
564 echo "DEPRECATED! use 'adapter gpio swclk; adapter gpio swdio' not 'bcm2835gpio swd_nums'"
565 eval adapter gpio swclk $swclk_num -chip 0
566 eval adapter gpio swdio $swdio_num -chip 0
567 }
568
569 lappend _telnet_autocomplete_skip "bcm2835gpio swclk_num"
570 proc "bcm2835gpio swclk_num" args {
571 eval bcm2835_gpio_helper swclk $args
572 }
573
574 lappend _telnet_autocomplete_skip "bcm2835gpio swdio_num"
575 proc "bcm2835gpio swdio_num" args {
576 eval bcm2835_gpio_helper swdio $args
577 }
578
579 lappend _telnet_autocomplete_skip "bcm2835gpio swdio_dir_num"
580 proc "bcm2835gpio swdio_dir_num" args {
581 eval bcm2835_gpio_helper swdio_dir $args
582 }
583
584 lappend _telnet_autocomplete_skip "bcm2835gpio srst_num"
585 proc "bcm2835gpio srst_num" args {
586 eval bcm2835_gpio_helper srst $args
587 }
588
589 lappend _telnet_autocomplete_skip "bcm2835gpio trst_num"
590 proc "bcm2835gpio trst_num" args {
591 eval bcm2835_gpio_helper trst $args
592 }
593
594 lappend _telnet_autocomplete_skip bcm2835gpio_speed_coeffs
595 proc bcm2835gpio_speed_coeffs args {
596 echo "DEPRECATED! use 'bcm2835gpio speed_coeffs' not 'bcm2835gpio_speed_coeffs'"
597 eval bcm2835gpio speed_coeffs $args
598 }
599
600 lappend _telnet_autocomplete_skip bcm2835gpio_peripheral_base
601 proc bcm2835gpio_peripheral_base args {
602 echo "DEPRECATED! use 'bcm2835gpio peripheral_base' not 'bcm2835gpio_peripheral_base'"
603 eval bcm2835gpio peripheral_base $args
604 }
605
606 lappend _telnet_autocomplete_skip linuxgpiod_jtag_nums
607 proc linuxgpiod_jtag_nums args {
608 eval adapter_gpio_jtag_nums $args
609 }
610
611 lappend _telnet_autocomplete_skip linuxgpiod_tck_num
612 proc linuxgpiod_tck_num args {
613 eval adapter_gpio_helper tck $args
614 }
615
616 lappend _telnet_autocomplete_skip linuxgpiod_tms_num
617 proc linuxgpiod_tms_num args {
618 eval adapter_gpio_helper tms $args
619 }
620
621 lappend _telnet_autocomplete_skip linuxgpiod_tdo_num
622 proc linuxgpiod_tdo_num args {
623 eval adapter_gpio_helper tdo $args
624 }
625
626 lappend _telnet_autocomplete_skip linuxgpiod_tdi_num
627 proc linuxgpiod_tdi_num args {
628 eval adapter_gpio_helper tdi $args
629 }
630
631 lappend _telnet_autocomplete_skip linuxgpiod_srst_num
632 proc linuxgpiod_srst_num args {
633 eval adapter_gpio_helper srst $args
634 }
635
636 lappend _telnet_autocomplete_skip linuxgpiod_trst_num
637 proc linuxgpiod_trst_num args {
638 eval adapter_gpio_helper trst $args
639 }
640
641 lappend _telnet_autocomplete_skip linuxgpiod_swd_nums
642 proc linuxgpiod_swd_nums args {
643 eval adapter_gpio_swd_nums $args
644 }
645
646 lappend _telnet_autocomplete_skip linuxgpiod_swclk_num
647 proc linuxgpiod_swclk_num args {
648 eval adapter_gpio_helper swclk $args
649 }
650
651 lappend _telnet_autocomplete_skip linuxgpiod_swdio_num
652 proc linuxgpiod_swdio_num args {
653 eval adapter_gpio_helper swdio $args
654 }
655
656 lappend _telnet_autocomplete_skip linuxgpiod_led_num
657 proc linuxgpiod_led_num args {
658 eval adapter_gpio_helper led $args
659 }
660
661 lappend _telnet_autocomplete_skip linuxgpiod_gpiochip
662 proc linuxgpiod_gpiochip args {
663 echo "DEPRECATED! use 'adapter <signal_name> -chip' not 'linuxgpiod_gpiochip'"
664 switch [llength $args] {
665 0 { }
666 1 {
667 foreach sig_name {tck tms tdi tdo trst srst swclk swdio swdio_dir led} {
668 eval adapter gpio $sig_name -chip $args
669 }
670 }
671 default {return -code 1 -level 1 "linuxgpiod_gpiochip: syntax error"}
672 }
673 eval adapter gpio
674 }
675
676 lappend _telnet_autocomplete_skip sysfsgpio_jtag_nums
677 proc sysfsgpio_jtag_nums args {
678 echo "DEPRECATED! use 'sysfsgpio jtag_nums' not 'sysfsgpio_jtag_nums'"
679 eval sysfsgpio jtag_nums $args
680 }
681
682 lappend _telnet_autocomplete_skip sysfsgpio_tck_num
683 proc sysfsgpio_tck_num args {
684 echo "DEPRECATED! use 'sysfsgpio tck_num' not 'sysfsgpio_tck_num'"
685 eval sysfsgpio tck_num $args
686 }
687
688 lappend _telnet_autocomplete_skip sysfsgpio_tms_num
689 proc sysfsgpio_tms_num args {
690 echo "DEPRECATED! use 'sysfsgpio tms_num' not 'sysfsgpio_tms_num'"
691 eval sysfsgpio tms_num $args
692 }
693
694 lappend _telnet_autocomplete_skip sysfsgpio_tdo_num
695 proc sysfsgpio_tdo_num args {
696 echo "DEPRECATED! use 'sysfsgpio tdo_num' not 'sysfsgpio_tdo_num'"
697 eval sysfsgpio tdo_num $args
698 }
699
700 lappend _telnet_autocomplete_skip sysfsgpio_tdi_num
701 proc sysfsgpio_tdi_num args {
702 echo "DEPRECATED! use 'sysfsgpio tdi_num' not 'sysfsgpio_tdi_num'"
703 eval sysfsgpio tdi_num $args
704 }
705
706 lappend _telnet_autocomplete_skip sysfsgpio_srst_num
707 proc sysfsgpio_srst_num args {
708 echo "DEPRECATED! use 'sysfsgpio srst_num' not 'sysfsgpio_srst_num'"
709 eval sysfsgpio srst_num $args
710 }
711
712 lappend _telnet_autocomplete_skip sysfsgpio_trst_num
713 proc sysfsgpio_trst_num args {
714 echo "DEPRECATED! use 'sysfsgpio trst_num' not 'sysfsgpio_trst_num'"
715 eval sysfsgpio trst_num $args
716 }
717
718 lappend _telnet_autocomplete_skip sysfsgpio_swd_nums
719 proc sysfsgpio_swd_nums args {
720 echo "DEPRECATED! use 'sysfsgpio swd_nums' not 'sysfsgpio_swd_nums'"
721 eval sysfsgpio swd_nums $args
722 }
723
724 lappend _telnet_autocomplete_skip sysfsgpio_swclk_num
725 proc sysfsgpio_swclk_num args {
726 echo "DEPRECATED! use 'sysfsgpio swclk_num' not 'sysfsgpio_swclk_num'"
727 eval sysfsgpio swclk_num $args
728 }
729
730 lappend _telnet_autocomplete_skip sysfsgpio_swdio_num
731 proc sysfsgpio_swdio_num args {
732 echo "DEPRECATED! use 'sysfsgpio swdio_num' not 'sysfsgpio_swdio_num'"
733 eval sysfsgpio swdio_num $args
734 }
735
736 lappend _telnet_autocomplete_skip buspirate_adc
737 proc buspirate_adc args {
738 echo "DEPRECATED! use 'buspirate adc' not 'buspirate_adc'"
739 eval buspirate adc $args
740 }
741
742 lappend _telnet_autocomplete_skip buspirate_vreg
743 proc buspirate_vreg args {
744 echo "DEPRECATED! use 'buspirate vreg' not 'buspirate_vreg'"
745 eval buspirate vreg $args
746 }
747
748 lappend _telnet_autocomplete_skip buspirate_pullup
749 proc buspirate_pullup args {
750 echo "DEPRECATED! use 'buspirate pullup' not 'buspirate_pullup'"
751 eval buspirate pullup $args
752 }
753
754 lappend _telnet_autocomplete_skip buspirate_led
755 proc buspirate_led args {
756 echo "DEPRECATED! use 'buspirate led' not 'buspirate_led'"
757 eval buspirate led $args
758 }
759
760 lappend _telnet_autocomplete_skip buspirate_speed
761 proc buspirate_speed args {
762 echo "DEPRECATED! use 'buspirate speed' not 'buspirate_speed'"
763 eval buspirate speed $args
764 }
765
766 lappend _telnet_autocomplete_skip buspirate_mode
767 proc buspirate_mode args {
768 echo "DEPRECATED! use 'buspirate mode' not 'buspirate_mode'"
769 eval buspirate mode $args
770 }
771
772 lappend _telnet_autocomplete_skip buspirate_port
773 proc buspirate_port args {
774 echo "DEPRECATED! use 'buspirate port' not 'buspirate_port'"
775 eval buspirate port $args
776 }
777
778 lappend _telnet_autocomplete_skip usb_blaster_device_desc
779 proc usb_blaster_device_desc args {
780 echo "DEPRECATED! use 'usb_blaster device_desc' not 'usb_blaster_device_desc'"
781 eval usb_blaster device_desc $args
782 }
783
784 lappend _telnet_autocomplete_skip usb_blaster_vid_pid
785 proc usb_blaster_vid_pid args {
786 echo "DEPRECATED! use 'usb_blaster vid_pid' not 'usb_blaster_vid_pid'"
787 eval usb_blaster vid_pid $args
788 }
789
790 lappend _telnet_autocomplete_skip usb_blaster_lowlevel_driver
791 proc usb_blaster_lowlevel_driver args {
792 echo "DEPRECATED! use 'usb_blaster lowlevel_driver' not 'usb_blaster_lowlevel_driver'"
793 eval usb_blaster lowlevel_driver $args
794 }
795
796 lappend _telnet_autocomplete_skip usb_blaster_pin
797 proc usb_blaster_pin args {
798 echo "DEPRECATED! use 'usb_blaster pin' not 'usb_blaster_pin'"
799 eval usb_blaster pin $args
800 }
801
802 lappend _telnet_autocomplete_skip usb_blaster_firmware
803 proc usb_blaster_firmware args {
804 echo "DEPRECATED! use 'usb_blaster firmware' not 'usb_blaster_firmware'"
805 eval usb_blaster firmware $args
806 }
807
808 lappend _telnet_autocomplete_skip ft232r_serial_desc
809 proc ft232r_serial_desc args {
810 echo "DEPRECATED! use 'adapter serial_desc' not 'ft232r_serial_desc'"
811 eval adapter serial_desc $args
812 }
813
814 lappend _telnet_autocomplete_skip ft232r_vid_pid
815 proc ft232r_vid_pid args {
816 echo "DEPRECATED! use 'ft232r vid_pid' not 'ft232r_vid_pid'"
817 eval ft232r vid_pid $args
818 }
819
820 lappend _telnet_autocomplete_skip ft232r_jtag_nums
821 proc ft232r_jtag_nums args {
822 echo "DEPRECATED! use 'ft232r jtag_nums' not 'ft232r_jtag_nums'"
823 eval ft232r jtag_nums $args
824 }
825
826 lappend _telnet_autocomplete_skip ft232r_tck_num
827 proc ft232r_tck_num args {
828 echo "DEPRECATED! use 'ft232r tck_num' not 'ft232r_tck_num'"
829 eval ft232r tck_num $args
830 }
831
832 lappend _telnet_autocomplete_skip ft232r_tms_num
833 proc ft232r_tms_num args {
834 echo "DEPRECATED! use 'ft232r tms_num' not 'ft232r_tms_num'"
835 eval ft232r tms_num $args
836 }
837
838 lappend _telnet_autocomplete_skip ft232r_tdo_num
839 proc ft232r_tdo_num args {
840 echo "DEPRECATED! use 'ft232r tdo_num' not 'ft232r_tdo_num'"
841 eval ft232r tdo_num $args
842 }
843
844 lappend _telnet_autocomplete_skip ft232r_tdi_num
845 proc ft232r_tdi_num args {
846 echo "DEPRECATED! use 'ft232r tdi_num' not 'ft232r_tdi_num'"
847 eval ft232r tdi_num $args
848 }
849
850 lappend _telnet_autocomplete_skip ft232r_srst_num
851 proc ft232r_srst_num args {
852 echo "DEPRECATED! use 'ft232r srst_num' not 'ft232r_srst_num'"
853 eval ft232r srst_num $args
854 }
855
856 lappend _telnet_autocomplete_skip ft232r_trst_num
857 proc ft232r_trst_num args {
858 echo "DEPRECATED! use 'ft232r trst_num' not 'ft232r_trst_num'"
859 eval ft232r trst_num $args
860 }
861
862 lappend _telnet_autocomplete_skip ft232r_restore_serial
863 proc ft232r_restore_serial args {
864 echo "DEPRECATED! use 'ft232r restore_serial' not 'ft232r_restore_serial'"
865 eval ft232r restore_serial $args
866 }
867
868 lappend _telnet_autocomplete_skip cmsis_dap_serial
869 proc cmsis_dap_serial args {
870 echo "DEPRECATED! use 'adapter serial' not 'cmsis_dap_serial'"
871 eval adapter serial $args
872 }
873
874 lappend _telnet_autocomplete_skip "ft232r serial_desc"
875 proc "ft232r serial_desc" {args} {
876 echo "DEPRECATED! use 'adapter serial' not 'ft232r serial_desc'"
877 eval adapter serial $args
878 }
879
880 lappend _telnet_autocomplete_skip "ftdi serial"
881 proc "ftdi serial" {args} {
882 echo "DEPRECATED! use 'adapter serial' not 'ftdi serial'"
883 eval adapter serial $args
884 }
885
886 lappend _telnet_autocomplete_skip hla_serial
887 proc hla_serial args {
888 echo "DEPRECATED! use 'adapter serial' not 'hla_serial'"
889 eval adapter serial $args
890 }
891
892 lappend _telnet_autocomplete_skip "jlink serial"
893 proc "jlink serial" {args} {
894 echo "DEPRECATED! use 'adapter serial' not 'jlink serial'"
895 eval adapter serial $args
896 }
897
898 lappend _telnet_autocomplete_skip kitprog_serial
899 proc kitprog_serial args {
900 echo "DEPRECATED! use 'adapter serial' not 'kitprog_serial'"
901 eval adapter serial $args
902 }
903
904 lappend _telnet_autocomplete_skip "presto serial"
905 proc "presto serial" {args} {
906 echo "DEPRECATED! use 'adapter serial' not 'presto serial'"
907 eval adapter serial $args
908 }
909
910 lappend _telnet_autocomplete_skip "st-link serial"
911 proc "st-link serial" {args} {
912 echo "DEPRECATED! use 'adapter serial' not 'st-link serial'"
913 eval adapter serial $args
914 }
915
916 lappend _telnet_autocomplete_skip "vsllink usb_serial"
917 proc "vsllink usb_serial" {args} {
918 echo "DEPRECATED! use 'adapter serial' not 'vsllink usb_serial'"
919 eval adapter serial $args
920 }
921
922 lappend _telnet_autocomplete_skip "xds110 serial"
923 proc "xds110 serial" {args} {
924 echo "DEPRECATED! use 'adapter serial' not 'xds110 serial'"
925 eval adapter serial $args
926 }
927
928 lappend _telnet_autocomplete_skip linuxgpiod
929 # linuxgpiod command completely removed, this is required for the sub-commands to work
930 proc linuxgpiod {subcommand args} {
931 eval {"linuxgpiod $subcommand"} $args
932 }
933
934 lappend _telnet_autocomplete_skip "linuxgpiod tck_num"
935 proc "linuxgpiod tck_num" {args} {
936 eval adapter_gpio_helper tck $args
937 }
938
939 lappend _telnet_autocomplete_skip "linuxgpiod tms_num"
940 proc "linuxgpiod tms_num" {args} {
941 eval adapter_gpio_helper tms $args
942 }
943
944 lappend _telnet_autocomplete_skip "linuxgpiod tdi_num"
945 proc "linuxgpiod tdi_num" {args} {
946 eval adapter_gpio_helper tdi $args
947 }
948
949 lappend _telnet_autocomplete_skip "linuxgpiod tdo_num"
950 proc "linuxgpiod tdo_num" {args} {
951 eval adapter_gpio_helper tdo $args
952 }
953
954 lappend _telnet_autocomplete_skip "linuxgpiod trst_num"
955 proc "linuxgpiod trst_num" {args} {
956 eval adapter_gpio_helper trst $args
957 }
958
959 lappend _telnet_autocomplete_skip "linuxgpiod srst_num"
960 proc "linuxgpiod srst_num" {args} {
961 eval adapter_gpio_helper srst $args
962 }
963
964 lappend _telnet_autocomplete_skip "linuxgpiod swclk_num"
965 proc "linuxgpiod swclk_num" {args} {
966 eval adapter_gpio_helper swclk $args
967 }
968
969 lappend _telnet_autocomplete_skip "linuxgpiod swdio_num"
970 proc "linuxgpiod swdio_num" {args} {
971 eval adapter_gpio_helper swdio $args
972 }
973
974 lappend _telnet_autocomplete_skip "linuxgpiod swdio_dir_num"
975 proc "linuxgpiod swdio_dir_num" {args} {
976 eval adapter_gpio_helper swdio_dir $args
977 }
978
979 lappend _telnet_autocomplete_skip "linuxgpiod led_num"
980 proc "linuxgpiod led_num" {args} {
981 eval adapter_gpio_helper led $args
982 }
983
984 lappend _telnet_autocomplete_skip "linuxgpiod gpiochip"
985 proc "linuxgpiod gpiochip" {num} {
986 echo "DEPRECATED! use 'adapter <signal_name> -chip' not 'linuxgpiod gpiochip'"
987 foreach sig_name {tck tms tdi tdo trst srst swclk swdio swdio_dir led} {
988 eval adapter gpio $sig_name -chip $num
989 }
990 eval adapter gpio
991 }
992
993 lappend _telnet_autocomplete_skip "linuxgpiod jtag_nums"
994 proc "linuxgpiod jtag_nums" {tck_num tms_num tdi_num tdo_num} {
995 echo "DEPRECATED! use 'adapter gpio tck; adapter gpio tms; adapter gpio tdi; adapter gpio tdo' not 'linuxgpiod jtag_nums'"
996 eval adapter gpio tck $tck_num
997 eval adapter gpio tms $tms_num
998 eval adapter gpio tdi $tdi_num
999 eval adapter gpio tdo $tdo_num
1000 }
1001
1002 lappend _telnet_autocomplete_skip "linuxgpiod swd_nums"
1003 proc "linuxgpiod swd_nums" {swclk swdio} {
1004 echo "DEPRECATED! use 'adapter gpio swclk; adapter gpio swdio' not 'linuxgpiod jtag_nums'"
1005 eval adapter gpio swclk $swclk
1006 eval adapter gpio swdio $swdio
1007 }
1008
1009 lappend _telnet_autocomplete_skip "am335xgpio jtag_nums"
1010 proc "am335xgpio jtag_nums" {tck_num tms_num tdi_num tdo_num} {
1011 echo "DEPRECATED! use 'adapter gpio tck; adapter gpio tms; adapter gpio tdi; adapter gpio tdo' not 'am335xgpio jtag_nums'"
1012 eval adapter gpio tck [expr {$tck_num % 32}] -chip [expr {$tck_num / 32}]
1013 eval adapter gpio tms [expr {$tms_num % 32}] -chip [expr {$tms_num / 32}]
1014 eval adapter gpio tdi [expr {$tdi_num % 32}] -chip [expr {$tdi_num / 32}]
1015 eval adapter gpio tdo [expr {$tdo_num % 32}] -chip [expr {$tdo_num / 32}]
1016 }
1017
1018 lappend _telnet_autocomplete_skip "am335xgpio tck_num"
1019 proc "am335xgpio tck_num" {num} {
1020 echo "DEPRECATED! use 'adapter gpio tck' not 'am335xgpio tck_num'"
1021 eval adapter gpio tck [expr {$num % 32}] -chip [expr {$num / 32}]
1022 }
1023
1024 lappend _telnet_autocomplete_skip "am335xgpio tms_num"
1025 proc "am335xgpio tms_num" {num} {
1026 echo "DEPRECATED! use 'adapter gpio tms' not 'am335xgpio tms_num'"
1027 eval adapter gpio tms [expr {$num % 32}] -chip [expr {$num / 32}]
1028 }
1029
1030 lappend _telnet_autocomplete_skip "am335xgpio tdi_num"
1031 proc "am335xgpio tdi_num" {num} {
1032 echo "DEPRECATED! use 'adapter gpio tdi' not 'am335xgpio tdi_num'"
1033 eval adapter gpio tdi [expr {$num % 32}] -chip [expr {$num / 32}]
1034 }
1035
1036 lappend _telnet_autocomplete_skip "am335xgpio tdo_num"
1037 proc "am335xgpio tdo_num" {num} {
1038 echo "DEPRECATED! use 'adapter gpio tdo' not 'am335xgpio tdo_num'"
1039 eval adapter gpio tdo [expr {$num % 32}] -chip [expr {$num / 32}]
1040 }
1041
1042 lappend _telnet_autocomplete_skip "am335xgpio swd_nums"
1043 proc "am335xgpio swd_nums" {swclk swdio} {
1044 echo "DEPRECATED! use 'adapter gpio swclk; adapter gpio swdio' not 'am335xgpio jtag_nums'"
1045 eval adapter gpio swclk [expr {$swclk % 32}] -chip [expr {$swclk / 32}]
1046 eval adapter gpio swdio [expr {$swdio % 32}] -chip [expr {$swdio / 32}]
1047 }
1048
1049 lappend _telnet_autocomplete_skip "am335xgpio swclk_num"
1050 proc "am335xgpio swclk_num" {num} {
1051 echo "DEPRECATED! use 'adapter gpio swclk' not 'am335xgpio swclk_num'"
1052 eval adapter gpio swclk [expr {$num % 32}] -chip [expr {$num / 32}]
1053 }
1054
1055 lappend _telnet_autocomplete_skip "am335xgpio swdio_num"
1056 proc "am335xgpio swdio_num" {num} {
1057 echo "DEPRECATED! use 'adapter gpio swdio' not 'am335xgpio swdio_num'"
1058 eval adapter gpio swdio [expr {$num % 32}] -chip [expr {$num / 32}]
1059 }
1060
1061 lappend _telnet_autocomplete_skip "am335xgpio swdio_dir_num"
1062 proc "am335xgpio swdio_dir_num" {num} {
1063 echo "DEPRECATED! use 'adapter gpio swdio_dir' not 'am335xgpio swdio_dir_num'"
1064 eval adapter gpio swdio_dir [expr {$num % 32}] -chip [expr {$num / 32}]
1065 }
1066
1067 lappend _telnet_autocomplete_skip "am335xgpio swdio_dir_output_state"
1068 proc "am335xgpio swdio_dir_output_state" {state} {
1069 echo "DEPRECATED! use 'adapter gpio swdio_dir -active-high' or 'adapter gpio swdio_dir -active-low', not 'am335xgpio swdio_dir_output_state'"
1070 switch $state {
1071 "high"
1072 {eval adapter gpio swdio_dir -active-high}
1073 "low"
1074 {eval adapter gpio swdio_dir -active-low}
1075 default
1076 {return -code 1 -level 1 "am335xgpio swdio_dir_output_state: syntax error"}
1077 }
1078 }
1079
1080 lappend _telnet_autocomplete_skip "am335xgpio srst_num"
1081 proc "am335xgpio srst_num" {num} {
1082 echo "DEPRECATED! use 'adapter gpio srst' not 'am335xgpio srst_num'"
1083 eval adapter gpio srst [expr {$num % 32}] -chip [expr {$num / 32}]
1084 }
1085
1086 lappend _telnet_autocomplete_skip "am335xgpio trst_num"
1087 proc "am335xgpio trst_num" {num} {
1088 echo "DEPRECATED! use 'adapter gpio trst' not 'am335xgpio trst_num'"
1089 eval adapter gpio trst [expr {$num % 32}] -chip [expr {$num / 32}]
1090 }
1091
1092 lappend _telnet_autocomplete_skip "am335xgpio led_num"
1093 proc "am335xgpio led_num" {num} {
1094 echo "DEPRECATED! use 'adapter gpio led' not 'am335xgpio led_num'"
1095 eval adapter gpio led [expr {$num % 32}] -chip [expr {$num / 32}]
1096 }
1097
1098 lappend _telnet_autocomplete_skip "am335xgpio led_on_state"
1099 proc "am335xgpio led_on_state" {state} {
1100 echo "DEPRECATED! use 'adapter gpio led -active-high' or 'adapter gpio led -active-low', not 'am335xgpio led_on_state'"
1101 switch $state {
1102 "high"
1103 {eval adapter gpio led -active-high}
1104 "low"
1105 {eval adapter gpio led -active-low}
1106 default
1107 {return -code 1 -level 1 "am335xgpio led_on_state: syntax error"}
1108 }
1109 }
1110
1111 lappend _telnet_autocomplete_skip "cmsis_dap_backend"
1112 proc "cmsis_dap_backend" {backend} {
1113 echo "DEPRECATED! use 'cmsis-dap backend', not 'cmsis_dap_backend'"
1114 eval cmsis-dap backend $backend
1115 }
1116
1117 lappend _telnet_autocomplete_skip "cmsis_dap_vid_pid"
1118 proc "cmsis_dap_vid_pid" {args} {
1119 echo "DEPRECATED! use 'cmsis-dap vid_pid', not 'cmsis_dap_vid_pid'"
1120 eval cmsis-dap vid_pid $args
1121 }
1122
1123 lappend _telnet_autocomplete_skip "cmsis_dap_usb"
1124 proc "cmsis_dap_usb" {args} {
1125 echo "DEPRECATED! use 'cmsis-dap usb', not 'cmsis_dap_usb'"
1126 eval cmsis-dap usb $args
1127 }
1128
1129 lappend _telnet_autocomplete_skip "pld device"
1130 proc "pld device" {driver tap_name {opt 0}} {
1131 echo "DEPRECATED! use 'pld create ...', not 'pld device ...'"
1132 if {[string is integer -strict $opt]} {
1133 if {$opt == 0} {
1134 eval pld create [lindex [split $tap_name .] 0].pld $driver -chain-position $tap_name
1135 } else {
1136 eval pld create [lindex [split $tap_name .] 0].pld $driver -chain-position $tap_name -no_jstart
1137 }
1138 } else {
1139 eval pld create [lindex [split $tap_name .] 0].pld $driver -chain-position $tap_name -family $opt
1140 }
1141 }
1142
1143 # END MIGRATION AIDS

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)