aboutsummaryrefslogtreecommitdiff
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
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>
-rw-r--r--src/jtag/startup.tcl4
-rw-r--r--src/target/startup.tcl25
-rw-r--r--tcl/target/1986ве1т.cfg2
-rw-r--r--tcl/target/at91sam3XXX.cfg2
-rw-r--r--tcl/target/at91sam4XXX.cfg2
-rw-r--r--tcl/target/lpc17xx.cfg2
-rw-r--r--tcl/target/mdr32f9q2i.cfg2
-rw-r--r--tcl/target/stm32f1x.cfg4
-rw-r--r--tcl/target/stm32f2x.cfg4
-rw-r--r--tcl/target/stm32f3x.cfg4
-rw-r--r--tcl/target/stm32f4x.cfg4
-rw-r--r--tcl/target/stm32l.cfg4
-rw-r--r--tcl/target/stm32w108xx.cfg2
-rw-r--r--tcl/target/swj-dp.tcl11
14 files changed, 42 insertions, 30 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.
diff --git a/tcl/target/1986ве1т.cfg b/tcl/target/1986ве1т.cfg
index 0338297..c76a211 100644
--- a/tcl/target/1986ве1т.cfg
+++ b/tcl/target/1986ве1т.cfg
@@ -48,7 +48,7 @@ if { [info exists IMEMORY] && [string equal $IMEMORY true] } {
adapter_khz 1000
adapter_nsrst_delay 100
-if {$using_jtag} {
+if {[using_jtag]} {
jtag_ntrst_delay 100
}
diff --git a/tcl/target/at91sam3XXX.cfg b/tcl/target/at91sam3XXX.cfg
index f36475b..caadc53 100644
--- a/tcl/target/at91sam3XXX.cfg
+++ b/tcl/target/at91sam3XXX.cfg
@@ -76,7 +76,7 @@ $_TARGETNAME configure -event gdb-flash-erase-start {
adapter_khz 500
adapter_nsrst_delay 100
-if {$using_jtag} {
+if {[using_jtag]} {
jtag_ntrst_delay 100
}
diff --git a/tcl/target/at91sam4XXX.cfg b/tcl/target/at91sam4XXX.cfg
index cc2941a..1570114 100644
--- a/tcl/target/at91sam4XXX.cfg
+++ b/tcl/target/at91sam4XXX.cfg
@@ -56,7 +56,7 @@ $_TARGETNAME configure -event gdb-flash-erase-start {
adapter_khz 500
adapter_nsrst_delay 100
-if {$using_jtag} {
+if {[using_jtag]} {
jtag_ntrst_delay 100
}
diff --git a/tcl/target/lpc17xx.cfg b/tcl/target/lpc17xx.cfg
index 372107f..266cecb 100644
--- a/tcl/target/lpc17xx.cfg
+++ b/tcl/target/lpc17xx.cfg
@@ -72,7 +72,7 @@ adapter_khz 10
# delays on reset lines
adapter_nsrst_delay 200
-if {$using_jtag} {
+if {[using_jtag]} {
jtag_ntrst_delay 200
}
diff --git a/tcl/target/mdr32f9q2i.cfg b/tcl/target/mdr32f9q2i.cfg
index 8e8262d..961451e 100644
--- a/tcl/target/mdr32f9q2i.cfg
+++ b/tcl/target/mdr32f9q2i.cfg
@@ -46,7 +46,7 @@ if { [info exists IMEMORY] && [string equal $IMEMORY true] } {
adapter_khz 1000
adapter_nsrst_delay 100
-if {$using_jtag} {
+if {[using_jtag]} {
jtag_ntrst_delay 100
}
diff --git a/tcl/target/stm32f1x.cfg b/tcl/target/stm32f1x.cfg
index f32654a..c89a5b5 100644
--- a/tcl/target/stm32f1x.cfg
+++ b/tcl/target/stm32f1x.cfg
@@ -61,7 +61,7 @@ if { [info exists BSTAPID] } {
set _BSTAPID9 0x06428041
}
-if {$using_jtag} {
+if {[using_jtag]} {
jtag newtap $_CHIPNAME bs -irlen 5 -expected-id $_BSTAPID1 \
-expected-id $_BSTAPID2 -expected-id $_BSTAPID3 \
-expected-id $_BSTAPID4 -expected-id $_BSTAPID5 \
@@ -82,7 +82,7 @@ flash bank $_FLASHNAME stm32f1x 0x08000000 0 0 0 $_TARGETNAME
adapter_khz 1000
adapter_nsrst_delay 100
-if {$using_jtag} {
+if {[using_jtag]} {
jtag_ntrst_delay 100
}
diff --git a/tcl/target/stm32f2x.cfg b/tcl/target/stm32f2x.cfg
index 5022ef7..4e43f0a 100644
--- a/tcl/target/stm32f2x.cfg
+++ b/tcl/target/stm32f2x.cfg
@@ -34,7 +34,7 @@ if { [info exists WORKAREASIZE] } {
adapter_khz 1000
adapter_nsrst_delay 100
-if {$using_jtag} {
+if {[using_jtag]} {
jtag_ntrst_delay 100
}
@@ -58,7 +58,7 @@ if { [info exists BSTAPID] } {
set _BSTAPID 0x06411041
}
-if {$using_jtag} {
+if {[using_jtag]} {
jtag newtap $_CHIPNAME bs -irlen 5 -expected-id $_BSTAPID
}
diff --git a/tcl/target/stm32f3x.cfg b/tcl/target/stm32f3x.cfg
index 3d68c4b..ec5941b 100644
--- a/tcl/target/stm32f3x.cfg
+++ b/tcl/target/stm32f3x.cfg
@@ -34,7 +34,7 @@ if { [info exists WORKAREASIZE] } {
adapter_khz 1000
adapter_nsrst_delay 100
-if {$using_jtag} {
+if {[using_jtag]} {
jtag_ntrst_delay 100
}
@@ -58,7 +58,7 @@ if { [info exists BSTAPID] } {
set _BSTAPID2 0x06432041
}
-if {$using_jtag} {
+if {[using_jtag]} {
jtag newtap $_CHIPNAME bs -irlen 5 -expected-id $_BSTAPID1 -expected-id $_BSTAPID2
}
diff --git a/tcl/target/stm32f4x.cfg b/tcl/target/stm32f4x.cfg
index feca77c..30ec686 100644
--- a/tcl/target/stm32f4x.cfg
+++ b/tcl/target/stm32f4x.cfg
@@ -47,7 +47,7 @@ if { [info exists BSTAPID] } {
set _BSTAPID2 0x06419041
}
-if {$using_jtag} {
+if {[using_jtag]} {
jtag newtap $_CHIPNAME bs -irlen 5 -expected-id $_BSTAPID1 \
-expected-id $_BSTAPID2
}
@@ -69,7 +69,7 @@ flash bank $_FLASHNAME stm32f2x 0 0 0 0 $_TARGETNAME
adapter_khz 1000
adapter_nsrst_delay 100
-if {$using_jtag} {
+if {[using_jtag]} {
jtag_ntrst_delay 100
}
diff --git a/tcl/target/stm32l.cfg b/tcl/target/stm32l.cfg
index f9f7425..5d6a53e 100644
--- a/tcl/target/stm32l.cfg
+++ b/tcl/target/stm32l.cfg
@@ -30,7 +30,7 @@ if { [info exists WORKAREASIZE] } {
adapter_khz 100
adapter_nsrst_delay 100
-if {$using_jtag} {
+if {[using_jtag]} {
jtag_ntrst_delay 100
}
@@ -54,7 +54,7 @@ if { [info exists BSTAPID] } {
set _BSTAPID 0x06416041
}
-if {$using_jtag} {
+if {[using_jtag]} {
jtag newtap $_CHIPNAME bs -irlen 5 -expected-id $_BSTAPID
}
diff --git a/tcl/target/stm32w108xx.cfg b/tcl/target/stm32w108xx.cfg
index 4bc51fc..faea0d8 100644
--- a/tcl/target/stm32w108xx.cfg
+++ b/tcl/target/stm32w108xx.cfg
@@ -38,7 +38,7 @@ if { [info exists ENDIAN] } {
swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
-if {$using_jtag} {
+if {[using_jtag]} {
if { [info exists BSTAPID] } {
set _BSTAPID $BSTAPID
jtag newtap $_CHIPNAME bs -irlen 4 -ircapture 0xe -irmask 0xf -expected-id 0x269a862b
diff --git a/tcl/target/swj-dp.tcl b/tcl/target/swj-dp.tcl
index fa44583..bd348e6 100644
--- a/tcl/target/swj-dp.tcl
+++ b/tcl/target/swj-dp.tcl
@@ -18,13 +18,8 @@
# split out "chip" and "tag" so we can someday handle
# them more uniformly irlen too...)
-global using_jtag
-set using_jtag 1
-
proc swj_newdap {chip tag args} {
- global using_jtag
- set tran [transport select]
- if [string equal $tran "jtag"] { eval jtag newtap $chip $tag $args; set using_jtag 1 }
- if [string equal $tran "swd"] { eval swd newdap $chip $tag $args; set using_jtag 0 }
- if [string equal $tran "cmsis-dap"] { eval cmsis-dap newdap $chip $tag $args; set using_jtag 0 }
+ if {[using_jtag]} { eval jtag newtap $chip $tag $args }
+ if {[using_swd]} { eval swd newdap $chip $tag $args }
+ if {[string equal [transport select] "cmsis-dap"]} { eval cmsis-dap newdap $chip $tag $args }
}