# 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 } {
+ set err [catch "$t arp_examine allow-defer"]
+ if { $err } {
+ $t invoke-event examine-fail
+ } else {
$t invoke-event examine-end
}
}
}
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
}
}
}
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
}
}
# 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
+ }
+
+ # don't wait for targets where examination is deferred
+ # they can not be halted anyway at this point
+ if { ![$t was_examined] && [$t examine_deferred] } {
continue
}
- # Wait upto 1 second for target to halt. Why 1sec? Cause
+ # Wait up to 1 second for target to halt. Why 1sec? Cause
# the JTAG tap reset signal might be hooked to a slow
# resistor/capacitor circuit - and it might take a while
# to charge
#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
+ }
+
+ # don't wait for targets where examination is deferred
+ # they can not be halted anyway at this point
+ if { ![$t was_examined] && [$t examine_deferred] } {
continue
}
}
}
-#########
+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 }
+}
-# Temporary migration aid. May be removed starting in January 2011.
-proc armv4_5 params {
- echo "DEPRECATED! use 'arm $params' not 'armv4_5 $params'"
- arm $params
+proc using_hla {} {
+ set _TRANSPORT [ transport select ]
+ expr { [ string first "hla" $_TRANSPORT ] != -1 }
}
+#########
+
# Target/chain configuration scripts can either execute commands directly
# or define a procedure which is executed once all configuration
# scripts have completed.
foreach t $targets {
set_default_target_event $t gdb-flash-erase-start "reset init"
set_default_target_event $t gdb-flash-write-end "reset halt"
+ set_default_target_event $t gdb-attach "halt 1000"
}
}
proc init_board {} {
}
-# deprecated target name cmds
-proc cortex_m3 args {
- echo "DEPRECATED! use 'cortex_m' not 'cortex_m3'"
- eval cortex_m $args
+# smp_on/smp_off were already DEPRECATED in v0.11.0 through http://openocd.zylin.com/4615
+proc "aarch64 smp_on" {args} {
+ echo "DEPRECATED! use 'aarch64 smp on' not 'aarch64 smp_on'"
+ eval aarch64 smp on $args
+}
+
+proc "aarch64 smp_off" {args} {
+ echo "DEPRECATED! use 'aarch64 smp off' not 'aarch64 smp_off'"
+ eval aarch64 smp off $args
+}
+
+proc "cortex_a smp_on" {args} {
+ echo "DEPRECATED! use 'cortex_a smp on' not 'cortex_a smp_on'"
+ eval cortex_a smp on $args
+}
+
+proc "cortex_a smp_off" {args} {
+ echo "DEPRECATED! use 'cortex_a smp off' not 'cortex_a smp_off'"
+ eval cortex_a smp off $args
+}
+
+proc "mips_m4k smp_on" {args} {
+ echo "DEPRECATED! use 'mips_m4k smp on' not 'mips_m4k smp_on'"
+ eval mips_m4k smp on $args
}
-proc cortex_a8 args {
- echo "DEPRECATED! use 'cortex_a' not 'cortex_a8'"
- eval cortex_a $args
+proc "mips_m4k smp_off" {args} {
+ echo "DEPRECATED! use 'mips_m4k smp off' not 'mips_m4k smp_off'"
+ eval mips_m4k smp off $args
}