75 lines
1.7 KiB
INI
75 lines
1.7 KiB
INI
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||
|
|
||
|
#
|
||
|
# SpacemiT Key Stone K1 target
|
||
|
#
|
||
|
# https://www.spacemit.com/key-stone-k1
|
||
|
#
|
||
|
|
||
|
transport select jtag
|
||
|
|
||
|
adapter speed 2000
|
||
|
|
||
|
if { [info exists CHIPNAME] } {
|
||
|
set _CHIPNAME $CHIPNAME
|
||
|
} else {
|
||
|
set _CHIPNAME k1
|
||
|
}
|
||
|
|
||
|
if { [info exists CORES] } {
|
||
|
set _cores $CORES
|
||
|
} else {
|
||
|
set _cores 1
|
||
|
}
|
||
|
|
||
|
if { [info exists SECJTAG] } {
|
||
|
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x10000E21
|
||
|
} else {
|
||
|
jtag newtap pre unknown -irlen 1 -expected-id 0x00000000 -disable
|
||
|
jtag configure pre.unknown -event tap-enable ""
|
||
|
|
||
|
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x10000E21 -disable
|
||
|
jtag configure $_CHIPNAME.cpu -event tap-enable ""
|
||
|
|
||
|
jtag newtap post unknown -irlen 9 -expected-id 0x08501C0D -ignore-version
|
||
|
|
||
|
jtag configure post.unknown -event setup {
|
||
|
global _CHIPNAME
|
||
|
|
||
|
irscan post.unknown 0x98
|
||
|
drscan post.unknown 16 0xa
|
||
|
|
||
|
jtag tapenable pre.unknown
|
||
|
jtag tapenable $_CHIPNAME.cpu
|
||
|
}
|
||
|
}
|
||
|
|
||
|
set _TARGETNAME $_CHIPNAME.cpu
|
||
|
set DBGBASE {0x0 0x400}
|
||
|
set _smp_command "target smp"
|
||
|
|
||
|
for { set _core 0 } { $_core < $_cores } { incr _core } {
|
||
|
target create $_TARGETNAME.$_core riscv -chain-position $_TARGETNAME \
|
||
|
-coreid [expr {$_core % 4}] -dbgbase [lindex $DBGBASE [expr {$_core / 4}]]
|
||
|
|
||
|
if { [expr {$_core % 4}] == 0 } {
|
||
|
$_TARGETNAME.$_core configure -rtos hwthread
|
||
|
}
|
||
|
|
||
|
set _smp_command "$_smp_command $_TARGETNAME.$_core"
|
||
|
}
|
||
|
|
||
|
eval $_smp_command
|
||
|
|
||
|
set _SPEED 8000
|
||
|
|
||
|
$_TARGETNAME.0 configure -event examine-start {
|
||
|
adapter speed $_SPEED
|
||
|
puts [ adapter speed ]
|
||
|
}
|
||
|
|
||
|
foreach t [target names] {
|
||
|
# $t riscv set_mem_access sysbus progbuf
|
||
|
$t riscv set_mem_access progbuf
|
||
|
}
|