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
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
} 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