tcl/target/ti_k3: Add a gdb-attach event hook for armv8 and simplify startup function
Since we can detect the type of target as well, reuse the _cpu_no_smp_up function name and use the target name to simplify the _up function and maintain consistency with what we introduced for r5. Lets introduce gdb-attach event in a much cleaner fashion. NOTE: we add a halt 1000 to retain the default gdb-attach hook behavior While at it, fix a minor type of s/are/as in "Set Default target are core 0" and simplify the foreach usage. Signed-off-by: Nishanth Menon <nm@ti.com> Change-Id: I3259b7c3ae4c71b06d921edfaefe17c03bb673dc Reviewed-on: https://review.openocd.org/c/openocd/+/6616 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
parent
3ba2b515b5
commit
4ea21b95f9
|
@ -154,6 +154,16 @@ proc _cpu_no_smp_up {} {
|
||||||
$_current_target $_current_type dbginit
|
$_current_target $_current_type dbginit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc _armv8_smp_up {} {
|
||||||
|
for { set _core 0 } { $_core < $::_armv8_cores } { incr _core } {
|
||||||
|
$::_TARGETNAME.$::_armv8_cpu_name.$_core arp_examine
|
||||||
|
$::_TARGETNAME.$::_armv8_cpu_name.$_core aarch64 dbginit
|
||||||
|
$::_TARGETNAME.$::_armv8_cpu_name.$_core aarch64 smp on
|
||||||
|
}
|
||||||
|
# Set Default target as core 0
|
||||||
|
targets $::_TARGETNAME.$::_armv8_cpu_name.0
|
||||||
|
}
|
||||||
|
|
||||||
set _v8_smp_targets ""
|
set _v8_smp_targets ""
|
||||||
|
|
||||||
for { set _core 0 } { $_core < $_armv8_cores } { incr _core } {
|
for { set _core 0 } { $_core < $_armv8_cores } { incr _core } {
|
||||||
|
@ -165,6 +175,20 @@ for { set _core 0 } { $_core < $_armv8_cores } { incr _core } {
|
||||||
-dbgbase [lindex $ARMV8_DBGBASE $_core] -cti $_CTINAME.$_armv8_cpu_name.$_core -defer-examine
|
-dbgbase [lindex $ARMV8_DBGBASE $_core] -cti $_CTINAME.$_armv8_cpu_name.$_core -defer-examine
|
||||||
|
|
||||||
set _v8_smp_targets "$_v8_smp_targets $_TARGETNAME.$_armv8_cpu_name.$_core"
|
set _v8_smp_targets "$_v8_smp_targets $_TARGETNAME.$_armv8_cpu_name.$_core"
|
||||||
|
|
||||||
|
if { $_v8_smp_debug == 0 } {
|
||||||
|
$_TARGETNAME.$_armv8_cpu_name.$_core configure -event gdb-attach {
|
||||||
|
_cpu_no_smp_up
|
||||||
|
# gdb-attach default rule
|
||||||
|
halt 1000
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$_TARGETNAME.$_armv8_cpu_name.$_core configure -event gdb-attach {
|
||||||
|
_armv8_smp_up
|
||||||
|
# gdb-attach default rule
|
||||||
|
halt 1000
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Setup ARMV8 proc commands based on CPU to prevent people confusing SoCs
|
# Setup ARMV8 proc commands based on CPU to prevent people confusing SoCs
|
||||||
|
@ -174,22 +198,15 @@ set _armv8_smp_cmd "$_armv8_cpu_name"_smp
|
||||||
|
|
||||||
if { $_v8_smp_debug == 0 } {
|
if { $_v8_smp_debug == 0 } {
|
||||||
proc $_armv8_up_cmd { args } {
|
proc $_armv8_up_cmd { args } {
|
||||||
foreach { _core } [set args] {
|
foreach _core $args {
|
||||||
$::_TARGETNAME.$::_armv8_cpu_name.$_core arp_examine
|
targets $_core
|
||||||
$::_TARGETNAME.$::_armv8_cpu_name.$_core aarch64 dbginit
|
_cpu_no_smp_up
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
proc $_armv8_smp_cmd { args } {
|
proc $_armv8_smp_cmd { args } {
|
||||||
for { set _core 0 } { $_core < $::_armv8_cores } { incr _core } {
|
_armv8_smp_up
|
||||||
$::_TARGETNAME.$::_armv8_cpu_name.$_core arp_examine
|
|
||||||
$::_TARGETNAME.$::_armv8_cpu_name.$_core aarch64 dbginit
|
|
||||||
$::_TARGETNAME.$::_armv8_cpu_name.$_core aarch64 smp on
|
|
||||||
}
|
|
||||||
# Set Default target are core 0
|
|
||||||
targets $::_TARGETNAME.$::_armv8_cpu_name.0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Declare SMP
|
# Declare SMP
|
||||||
target smp $:::_v8_smp_targets
|
target smp $:::_v8_smp_targets
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue