aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Fertser <fercerpav@gmail.com>2014-03-01 22:40:54 +0400
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>2014-06-28 09:28:12 +0000
commitf8a6a07149d88737f3d466e7ce620cc1f0874c6a (patch)
tree2bc5c93183ad11608659fd3546297b21fd165eaa /src
parent36772a7ed0c31a99c721d1ea9131a8ecc56a263d (diff)
downloadriscv-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.tcl4
-rw-r--r--src/target/startup.tcl25
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.