diff options
author | Paul Fertser <fercerpav@gmail.com> | 2014-03-01 22:40:54 +0400 |
---|---|---|
committer | Andreas Fritiofson <andreas.fritiofson@gmail.com> | 2014-06-28 09:28:12 +0000 |
commit | f8a6a07149d88737f3d466e7ce620cc1f0874c6a (patch) | |
tree | 2bc5c93183ad11608659fd3546297b21fd165eaa /src | |
parent | 36772a7ed0c31a99c721d1ea9131a8ecc56a263d (diff) | |
download | riscv-openocd-f8a6a07149d88737f3d466e7ce620cc1f0874c6a.zip riscv-openocd-f8a6a07149d88737f3d466e7ce620cc1f0874c6a.tar.gz riscv-openocd-f8a6a07149d88737f3d466e7ce620cc1f0874c6a.tar.bz2 |
tcl: introduce using_(jtag|swd|hla) helpers and use them in reset handler
Barely tested with plain SWD transport.
Change-Id: I48b59136bf4294ffed737dba01f1b30ef83aa86b
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/2003
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/jtag/startup.tcl | 4 | ||||
-rw-r--r-- | src/target/startup.tcl | 25 |
2 files changed, 23 insertions, 6 deletions
diff --git a/src/jtag/startup.tcl b/src/jtag/startup.tcl index 4153118..94590e1 100644 --- a/src/jtag/startup.tcl +++ b/src/jtag/startup.tcl @@ -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 + } } ######### diff --git a/src/target/startup.tcl b/src/target/startup.tcl index 033e9c9..cf2813b 100644 --- a/src/target/startup.tcl +++ b/src/target/startup.tcl @@ -63,7 +63,7 @@ proc ocd_process_reset_inner { MODE } { # Examine all targets on enabled taps. foreach t $targets { - if {[jtag tapisenabled [$t cget -chain-position]]} { + if {![using_jtag] || [jtag tapisenabled [$t cget -chain-position]]} { $t invoke-event examine-start set err [catch "$t arp_examine"] if { $err == 0 } { @@ -79,7 +79,7 @@ proc ocd_process_reset_inner { MODE } { } foreach t $targets { # C code needs to know if we expect to 'halt' - if {[jtag tapisenabled [$t cget -chain-position]]} { + if {![using_jtag] || [jtag tapisenabled [$t cget -chain-position]]} { $t arp_reset assert $halt } } @@ -94,7 +94,7 @@ proc ocd_process_reset_inner { MODE } { } foreach t $targets { # Again, de-assert code needs to know if we 'halt' - if {[jtag tapisenabled [$t cget -chain-position]]} { + if {![using_jtag] || [jtag tapisenabled [$t cget -chain-position]]} { $t arp_reset deassert $halt } } @@ -107,7 +107,7 @@ proc ocd_process_reset_inner { MODE } { # first executing any instructions. if { $halt } { foreach t $targets { - if {[jtag tapisenabled [$t cget -chain-position]] == 0} { + if {[using_jtag] && ![jtag tapisenabled [$t cget -chain-position]]} { continue } @@ -131,7 +131,7 @@ proc ocd_process_reset_inner { MODE } { #Pass 2 - if needed "init" if { 0 == [string compare init $MODE] } { foreach t $targets { - if {[jtag tapisenabled [$t cget -chain-position]] == 0} { + if {[using_jtag] && ![jtag tapisenabled [$t cget -chain-position]]} { continue } @@ -148,6 +148,21 @@ proc ocd_process_reset_inner { MODE } { } } +proc using_jtag {} { + set _TRANSPORT [ transport select ] + expr { [ string first "jtag" $_TRANSPORT ] != -1 } +} + +proc using_swd {} { + set _TRANSPORT [ transport select ] + expr { [ string first "swd" $_TRANSPORT ] != -1 } +} + +proc using_hla {} { + set _TRANSPORT [ transport select ] + expr { [ string first "hla" $_TRANSPORT ] != -1 } +} + ######### # Temporary migration aid. May be removed starting in January 2011. |