openocd: add dmem support to am64xx and j784s4 platforms

Platform support patches:
   - Add SWD native configuration files for AM64x and J784s4 boards
   - Configure DMEM access parameters in ti_k3.cfg for direct memory operations
   - Set up DAPBUS debugger and emulated AP descriptions

Signed-off-by: Joao Lima <joao.lima@hbkworld.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Joao Lima 2025-10-09 18:23:44 +01:00 committed by Khem Raj
parent 050608b50d
commit e7eb50fe25
No known key found for this signature in database
GPG Key ID: BB053355919D3314
3 changed files with 144 additions and 0 deletions

View File

@ -0,0 +1,77 @@
From 5c55d79ecfecc4a1b5a5ebcf649227ca1e1bf38e Mon Sep 17 00:00:00 2001
From: Joao Lima <joao.lima@hbkworld.com>
Date: Tue, 30 Sep 2025 12:13:04 +0000
Subject: [PATCH 1/2] tcl/board/ti_*_swd_native.cfg: Add support for direct
memory access via SW
Add support for SWD emulation as a transport method for
direct memory operations of boards TI AM64x and TI J784s4
Upstream-Status: Submitted [http://openocd.zylin.com/#/c/9020/]
Change-Id: I17fe9b2bef5c58886625bfdb88d92645ba4d7da7
Signed-off-by: Joao Lima <joao.lima@hbkworld.com>
---
tcl/board/ti_am64xx_swd_native.cfg | 23 +++++++++++++++++++++++
tcl/board/ti_j784s4_swd_native.cfg | 22 ++++++++++++++++++++++
2 files changed, 45 insertions(+)
create mode 100644 tcl/board/ti_am64xx_swd_native.cfg
create mode 100644 tcl/board/ti_j784s4_swd_native.cfg
diff --git a/tcl/board/ti_am64xx_swd_native.cfg b/tcl/board/ti_am64xx_swd_native.cfg
new file mode 100644
index 000000000..d3727149e
--- /dev/null
+++ b/tcl/board/ti_am64xx_swd_native.cfg
@@ -0,0 +1,23 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2022-2023 Texas Instruments Incorporated - http://www.ti.com/
+#
+# Texas Instruments am642
+# Link: https://www.ti.com/product/AM642
+#
+# This configuration file is used as a self hosted debug configuration that
+# works on every AM642 platform based on firewall configuration permitted
+# in the system.
+#
+# In this system openOCD runs on one of the CPUs inside AM625 and provides
+# network ports that can then be used to debug the microcontrollers on the
+# SoC - either self hosted IDE OR remotely.
+
+# We are using dmem, which uses dapdirect_swd transport
+adapter driver dmem
+transport select swd
+
+if { ![info exists SOC] } {
+ set SOC am642
+}
+
+source [find target/ti_k3.cfg]
diff --git a/tcl/board/ti_j784s4_swd_native.cfg b/tcl/board/ti_j784s4_swd_native.cfg
new file mode 100644
index 000000000..13b2ac3b8
--- /dev/null
+++ b/tcl/board/ti_j784s4_swd_native.cfg
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2022-2023 Texas Instruments Incorporated - http://www.ti.com/
+#
+# Texas Instruments TDA4VM/J721E
+# Link: https://www.ti.com/product/TDA4VM
+#
+# This configuration file is used as a self hosted debug configuration that
+# works on every TDA4VM platform based on firewall configuration permitted
+# in the system.
+#
+# In this system openOCD runs on one of the CPUs inside TDA4VM and provides
+# network ports that can then be used to debug the microcontrollers on the
+# SoC - either self hosted IDE OR remotely.
+
+# We are using dmem, which uses dapdirect_swd transport
+adapter driver dmem
+transport select swd
+
+if { ![info exists SOC] } {
+ set SOC j784s4
+}
+source [find target/ti_k3.cfg]

View File

@ -0,0 +1,65 @@
From 39bc4461642eaaf993d0a6cf772d51cdde8c0ae8 Mon Sep 17 00:00:00 2001
From: Joao Lima <joao.lima@hbkworld.com>
Date: Tue, 30 Sep 2025 12:13:30 +0000
Subject: [PATCH 2/2] tcl/target/ti_k3.cfg: Add support for direct memory
access via SWD
Adds support for direct memory access via SWD emulation for AM64x and
J784s4 boards, configuring addresses and parameters required for
direct memory operations.
Upstream-Status: Submitted [http://openocd.zylin.com/#/c/9021/]
Change-Id: Iebc16612b3990b2ef19ddc4143b66ab1bcbfe0f3
Signed-off-by: Joao Lima <joao.lima@hbkworld.com>
---
tcl/target/ti_k3.cfg | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/tcl/target/ti_k3.cfg b/tcl/target/ti_k3.cfg
index 0dee74e5e..6b0ac2e52 100644
--- a/tcl/target/ti_k3.cfg
+++ b/tcl/target/ti_k3.cfg
@@ -176,6 +176,16 @@ switch $_soc {
# Uses the same JTAG ID
set _armv8_cores 0
}
+
+ # Setup DMEM access descriptions
+ # DAPBUS (Debugger) description
+ set _dmem_base_address 0x740002000
+ set _dmem_ap_address_offset 0x100
+ set _dmem_max_aps 10
+ # Emulated AP description
+ set _dmem_emu_base_address 0x760000000
+ set _dmem_emu_base_address_map_to 0x1d500000
+ set _dmem_emu_ap_list 1
}
am625 {
set _K3_DAP_TAPID 0x0bb7e02f
@@ -333,7 +343,7 @@ switch $_soc {
set ARMV8_CTIBASE {0x90420000 0x90520000 0x90620000 0x90720000
0x90820000 0x90920000 0x90a20000 0x90b20000}
- # J721s2 has 4 clusters of 2 R5 cores each.
+ # J784s4 has 4 clusters of 2 R5 cores each.
set _r5_cores 8
set R5_DBGBASE {0x9d010000 0x9d012000
0x9d410000 0x9d412000
@@ -348,6 +358,16 @@ switch $_soc {
main1_r5.0 main1_r5.1
main2_r5.0 main2_r5.1}
+ # Setup DMEM access descriptions
+ # DAPBUS (Debugger) description
+ set _dmem_base_address 0x4c40002000
+ set _dmem_ap_address_offset 0x100
+ set _dmem_max_aps 8
+ # Emulated AP description
+ set _dmem_emu_base_address 0x4c60000000
+ set _dmem_emu_base_address_map_to 0x1d600000
+ set _dmem_emu_ap_list 1
+
# sysctrl CTI base
set CM3_CTIBASE {0x20001000}
# Sysctrl power-ap unlock offsets

View File

@ -9,6 +9,8 @@ SRC_URI = " \
git://repo.or.cz/r/git2cl.git;protocol=http;destsuffix=tools/git2cl;name=git2cl;branch=master \
git://github.com/msteveb/jimtcl.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/jimtcl;name=jimtcl;branch=master \
git://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/src/jtag/drivers/libjaylink;name=libjaylink;branch=master \
file://0001-tcl-board-ti_-_swd_native.cfg-Add-support-for-direct.patch \
file://0002-tcl-target-ti_k3.cfg-Add-support-for-direct-memory-a.patch \
"
SRCREV_FORMAT = "openocd"