target/xtensa: add dual-core support
- Example for configuring multiple non-SMP Xtensa cores e.g. for heterogeneous debug - JTAG only at this time; DAP out of scope - Dual-Xtensa Palladium example via VDebug - Update Xtensa core config examples Signed-off-by: Ian Thompson <ianst@cadence.com> Change-Id: I6d2b3d13fa8075416dcd383cf256a3e8582ee1c1 Reviewed-on: https://review.openocd.org/c/openocd/+/8078 Tested-by: jenkins Reviewed-by: Jacek Wuwer <jacekmw8@gmail.com> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
committed by
Antonio Borneo
parent
151b743714
commit
3d3f823920
@@ -5,7 +5,7 @@
|
||||
set xtensa_ids { 0x120034e5 0x120134e5
|
||||
0x209034e5 0x209134e5 0x209234e5 0x209334e5 0x209434e5 0x209534e5 0x209634e5 0x209734e5
|
||||
0x20a034e5 0x20a134e5 0x20a234e5 0x20a334e5 0x20a434e5 0x20a534e5 0x20a634e5 0x20a734e5 0x20a834e5
|
||||
0x20b034e5 }
|
||||
0x20b034e5 0x20b33ac5 0x20b33ac7 }
|
||||
set expected_xtensa_ids {}
|
||||
foreach i $xtensa_ids {
|
||||
lappend expected_xtensa_ids -expected-id $i
|
||||
@@ -23,6 +23,12 @@ if { [info exists CPUTAPID] } {
|
||||
set _CPUTAPARGLIST [join $expected_xtensa_ids]
|
||||
}
|
||||
|
||||
if { [info exists XTENSA_NUM_CORES] } {
|
||||
set _XTENSA_NUM_CORES $XTENSA_NUM_CORES
|
||||
} else {
|
||||
set _XTENSA_NUM_CORES 1
|
||||
}
|
||||
|
||||
set _TARGETNAME $_CHIPNAME
|
||||
set _CPU0NAME cpu
|
||||
set _TAPNAME $_CHIPNAME.$_CPU0NAME
|
||||
@@ -40,12 +46,25 @@ if { [info exists XTENSA_DAP] } {
|
||||
} else {
|
||||
target create $_TARGETNAME xtensa -dap $_CHIPNAME.dap
|
||||
}
|
||||
} else {
|
||||
} elseif { $_XTENSA_NUM_CORES > 1 } {
|
||||
# JTAG direct (without DAP)
|
||||
for {set i 0} {$i < $_XTENSA_NUM_CORES} {incr i} {
|
||||
set _LCPUNAME $_CPU0NAME$i
|
||||
set _LTAPNAME $_CHIPNAME.$_LCPUNAME
|
||||
eval jtag newtap $_CHIPNAME $_LCPUNAME -irlen 5 $_CPUTAPARGLIST
|
||||
target create $_LTAPNAME xtensa -chain-position $_LTAPNAME -coreid $i
|
||||
|
||||
$_LTAPNAME configure -event reset-assert-post { soft_reset_halt }
|
||||
}
|
||||
} else {
|
||||
# JTAG direct (without DAP) - for legacy xtensa-config-XXX.cfg format
|
||||
eval jtag newtap $_CHIPNAME $_CPU0NAME -irlen 5 $_CPUTAPARGLIST
|
||||
target create $_TARGETNAME xtensa -chain-position $_TAPNAME
|
||||
}
|
||||
|
||||
$_TARGETNAME configure -event reset-assert-post { soft_reset_halt }
|
||||
if { $_XTENSA_NUM_CORES == 1 } {
|
||||
# DAP and single-core legacy JTAG
|
||||
$_TARGETNAME configure -event reset-assert-post { soft_reset_halt }
|
||||
}
|
||||
|
||||
gdb_report_register_access_error enable
|
||||
|
||||
Reference in New Issue
Block a user