aboutsummaryrefslogtreecommitdiff
path: root/tcl
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2021-06-30 14:38:39 -0700
committerTim Newsome <tim@sifive.com>2021-06-30 14:56:44 -0700
commit5edbbb4827ee8c12d16c9474d842154b4eaf5c38 (patch)
treee431316144dbe75affaa4773d625759db47f2336 /tcl
parentf4950b7c5d4a3ead9b1433c4ea6f3bbf3a540f9c (diff)
parentcff0e417da58adef1ceef9a63a99412c2cc87ff3 (diff)
downloadriscv-openocd-5edbbb4827ee8c12d16c9474d842154b4eaf5c38.zip
riscv-openocd-5edbbb4827ee8c12d16c9474d842154b4eaf5c38.tar.gz
riscv-openocd-5edbbb4827ee8c12d16c9474d842154b4eaf5c38.tar.bz2
Merge branch 'master' into from_upstream
Conflicts: src/flash/nor/nrf5.c src/flash/nor/xcf.c src/jtag/drivers/remote_bitbang.c src/rtos/FreeRTOS.c src/rtos/zephyr.c src/target/cortex_a.c src/target/cortex_a.h src/target/cortex_m.c src/target/riscv/riscv.c Change-Id: I80b0a33b40c06c229d20fe34e04d6322da83326d
Diffstat (limited to 'tcl')
-rw-r--r--tcl/board/digilent_nexys_video.cfg26
-rw-r--r--tcl/board/renesas_falcon.cfg10
-rw-r--r--tcl/target/renesas_rcar_gen2.cfg3
-rw-r--r--tcl/target/renesas_rcar_gen3.cfg60
4 files changed, 83 insertions, 16 deletions
diff --git a/tcl/board/digilent_nexys_video.cfg b/tcl/board/digilent_nexys_video.cfg
new file mode 100644
index 0000000..f171e24
--- /dev/null
+++ b/tcl/board/digilent_nexys_video.cfg
@@ -0,0 +1,26 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Digilent Nexys Video with Xilinx Artix-7 FPGA
+# https://reference.digilentinc.com/programmable-logic/nexys-video/start
+
+adapter driver ftdi
+adapter speed 30000
+
+ftdi_device_desc "Digilent USB Device"
+ftdi_vid_pid 0x0403 0x6010
+
+# channel 0 is dedicated for Digilent's DPTI Interface
+# channel 1 is used for JTAG
+ftdi_channel 1
+
+# just TCK TDI TDO TMS, no reset
+ftdi_layout_init 0x0088 0x008b
+reset_config none
+
+# Enable sampling on falling edge for high JTAG speeds.
+ftdi_tdo_sample_edge falling
+
+transport select jtag
+
+source [find cpld/xilinx-xc7.cfg]
+source [find cpld/jtagspi.cfg]
diff --git a/tcl/board/renesas_falcon.cfg b/tcl/board/renesas_falcon.cfg
new file mode 100644
index 0000000..c796f85
--- /dev/null
+++ b/tcl/board/renesas_falcon.cfg
@@ -0,0 +1,10 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Renesas R-Car V3U Falcon Board Config
+
+# The Falcon board comes with either an V3U SOC.
+
+echo "\nFalcon:"
+if { ![info exists SOC] } {
+ set SOC V3U
+}
+source [find target/renesas_rcar_gen3.cfg]
diff --git a/tcl/target/renesas_rcar_gen2.cfg b/tcl/target/renesas_rcar_gen2.cfg
index 91baa6c..e51b372 100644
--- a/tcl/target/renesas_rcar_gen2.cfg
+++ b/tcl/target/renesas_rcar_gen2.cfg
@@ -87,12 +87,14 @@ dap create $_DAPNAME -chain-position $_CHIPNAME.cpu
set CA15_DBGBASE {0x800B0000 0x800B2000 0x800B4000 0x800B6000}
set CA7_DBGBASE {0x800F0000 0x800F2000 0x800F4000 0x800F6000}
+set _targets ""
set smp_targets ""
proc setup_ca {core_name dbgbase num boot} {
global _CHIPNAME
global _DAPNAME
global smp_targets
+ global _targets
for { set _core 0 } { $_core < $num } { incr _core } {
set _TARGETNAME $_CHIPNAME.$core_name.$_core
set _CTINAME $_TARGETNAME.cti
@@ -123,3 +125,4 @@ if { [string equal $_boot_core CA15] } {
source [find target/renesas_rcar_reset_common.cfg]
eval "target smp $smp_targets"
+targets $_targets
diff --git a/tcl/target/renesas_rcar_gen3.cfg b/tcl/target/renesas_rcar_gen3.cfg
index 5738d37..334d255 100644
--- a/tcl/target/renesas_rcar_gen3.cfg
+++ b/tcl/target/renesas_rcar_gen3.cfg
@@ -7,6 +7,7 @@
# H3: Cortex-A57 x 4, Cortex-A53 x 4, Cortex-R7 x 2 (Lock-Step)
# M3W: Cortex-A57 x 2, Cortex-A53 x 4, Cortex-R7 x 2 (Lock-Step)
# M3N: Cortex-A57 x 2, Cortex-R7 x 2 (Lock-Step)
+# V3U: Cortex-A76 x 8, Cortex-R52 x2 (Lock-Step)
# V3H: Cortex-A53 x 4, Cortex-R7 x 2 (Lock-Step)
# V3M: Cortex-A53 x 2, Cortex-R7 x 2 (Lock-Step)
# E3: Cortex-A53 x 1, Cortex-R7 x 2 (Lock-Step)
@@ -24,6 +25,12 @@ if { [info exists SOC] } {
set _soc H3
}
+set _num_ca53 0
+set _num_ca57 0
+set _num_ca76 0
+set _num_cr52 0
+set _num_cr7 0
+
# Set configuration for each SOC and the default 'BOOT_CORE'
switch $_soc {
H3 {
@@ -75,6 +82,12 @@ switch $_soc {
set _num_cr7 0
set _boot_core CA53
}
+ V3U {
+ set _CHIPNAME r8a779a0
+ set _num_ca76 8
+ set _num_cr52 1
+ set _boot_core CA76
+ }
default {
error "'$_soc' is invalid!"
}
@@ -96,7 +109,7 @@ if { [info exists DAP_TAPID] } {
set _DAP_TAPID 0x5ba00477
}
-echo "\t$_soc - $_num_ca57 CA57(s), $_num_ca53 CA53(s), $_num_cr7 CR7(s)"
+echo "\t$_soc - $_num_ca76 CA76(s), $_num_ca57 CA57(s), $_num_ca53 CA53(s), $_num_cr52 CR52(s), $_num_cr7 CR7(s)"
echo "\tBoot Core - $_boot_core\n"
set _DAPNAME $_CHIPNAME.dap
@@ -105,19 +118,25 @@ set _DAPNAME $_CHIPNAME.dap
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x01 -irmask 0x0f -expected-id $_DAP_TAPID
dap create $_DAPNAME -chain-position $_CHIPNAME.cpu
+set CA76_DBGBASE {0x81410000 0x81510000 0x81610000 0x81710000 0x81c10000 0x81d10000 0x81e10000 0x81f10000}
+set CA76_CTIBASE {0x81420000 0x81520000 0x81620000 0x81720000 0x81c20000 0x81d20000 0x81e20000 0x81f20000}
set CA57_DBGBASE {0x80410000 0x80510000 0x80610000 0x80710000}
set CA57_CTIBASE {0x80420000 0x80520000 0x80620000 0x80720000}
set CA53_DBGBASE {0x80C10000 0x80D10000 0x80E10000 0x80F10000}
set CA53_CTIBASE {0x80C20000 0x80D20000 0x80E20000 0x80F20000}
+set CR52_DBGBASE 0x80c10000
+set CR52_CTIBASE 0x80c20000
set CR7_DBGBASE 0x80910000
set CR7_CTIBASE 0x80918000
+set _targets ""
set smp_targets ""
proc setup_a5x {core_name dbgbase ctibase num boot} {
global _CHIPNAME
global _DAPNAME
global smp_targets
+ global _targets
for { set _core 0 } { $_core < $num } { incr _core } {
set _TARGETNAME $_CHIPNAME.$core_name.$_core
set _CTINAME $_TARGETNAME.cti
@@ -135,33 +154,41 @@ proc setup_a5x {core_name dbgbase ctibase num boot} {
}
}
-proc setup_cr7 {dbgbase ctibase boot} {
+proc setup_cr7 {core_name dbgbase ctibase num boot} {
global _CHIPNAME
global _DAPNAME
- set _TARGETNAME $_CHIPNAME.r7
- set _CTINAME $_TARGETNAME.cti
- cti create $_CTINAME -dap $_DAPNAME -ap-num 1 -baseaddr $ctibase
- set _command "target create $_TARGETNAME cortex_r4 -dap $_DAPNAME \
- -ap-num 1 -dbgbase $dbgbase"
- if { $boot == 1 } {
- set _targets "$_TARGETNAME"
- } else {
- set _command "$_command -defer-examine"
+ for { set _core 0 } { $_core < $num } { incr _core } {
+ set _TARGETNAME $_CHIPNAME.$core_name
+ set _CTINAME $_TARGETNAME.cti
+ cti create $_CTINAME -dap $_DAPNAME -ap-num 1 -baseaddr $ctibase
+ set _command "target create $_TARGETNAME cortex_r4 -dap $_DAPNAME \
+ -ap-num 1 -dbgbase $dbgbase"
+ if { $boot == 1 } {
+ set _targets "$_TARGETNAME"
+ } else {
+ set _command "$_command -defer-examine"
+ }
+ eval $_command
}
- eval $_command
}
# Organize target list based on the boot core
-if { [string equal $_boot_core CA57] } {
+if { [string equal $_boot_core CA76] } {
+ setup_a5x a76 $CA76_DBGBASE $CA76_CTIBASE $_num_ca76 1
+ setup_cr7 r52 $CR52_DBGBASE $CR52_CTIBASE $_num_cr52 0
+} elseif { [string equal $_boot_core CA57] } {
setup_a5x a57 $CA57_DBGBASE $CA57_CTIBASE $_num_ca57 1
setup_a5x a53 $CA53_DBGBASE $CA53_CTIBASE $_num_ca53 0
- setup_cr7 $CR7_DBGBASE $CR7_CTIBASE 0
+ setup_cr7 r7 $CR7_DBGBASE $CR7_CTIBASE $_num_cr7 0
} elseif { [string equal $_boot_core CA53] } {
setup_a5x a53 $CA53_DBGBASE $CA53_CTIBASE $_num_ca53 1
setup_a5x a57 $CA57_DBGBASE $CA57_CTIBASE $_num_ca57 0
- setup_cr7 $CR7_DBGBASE $CR7_CTIBASE 0
+ setup_cr7 r7 $CR7_DBGBASE $CR7_CTIBASE $_num_cr7 0
+} elseif { [string equal $_boot_core CR52] } {
+ setup_cr7 r52 $CR52_DBGBASE $CR52_CTIBASE $_num_cr52 1
+ setup_a5x a76 $CA76_DBGBASE $CA76_CTIBASE $_num_ca76 0
} else {
- setup_cr7 $CR7_DBGBASE $CR7_CTIBASE 1
+ setup_cr7 r7 $CR7_DBGBASE $CR7_CTIBASE $_num_cr7 1
setup_a5x a57 $CA57_DBGBASE $CA57_CTIBASE $_num_ca57 0
setup_a5x a53 $CA53_DBGBASE $CA53_CTIBASE $_num_ca53 0
}
@@ -169,3 +196,4 @@ if { [string equal $_boot_core CA57] } {
source [find target/renesas_rcar_reset_common.cfg]
eval "target smp $smp_targets"
+targets $_targets