mirror of
git://git.code.sf.net/p/openocd/code
synced 2025-07-19 23:36:13 +10:00
This commits adds debugging support for the Mellanox BlueField SoC via rshim, which is an interface accessible from external USB or PCIe (for SmartNIC case) via the rshim driver. It implements the arm dap interfaces based on the existing dapdirect framework. Change-Id: I18eb1c54293ec2c581f853e0e55b3f96d7978b56 Signed-off-by: Liming Sun <lsun@mellanox.com> Reviewed-on: http://openocd.zylin.com/5457 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
79 lines
2.0 KiB
INI
79 lines
2.0 KiB
INI
# BlueField SoC Target
|
|
|
|
set _CHIPNAME bluefield
|
|
|
|
# Specify the target device
|
|
#rshim device /dev/rshim0/rshim
|
|
|
|
# Main DAP
|
|
if { [info exists DAP_TAPID] } {
|
|
set _DAP_TAPID $DAP_TAPID
|
|
} else {
|
|
set _DAP_TAPID 0x4ba00477
|
|
}
|
|
|
|
adapter speed 1500
|
|
|
|
swd newdap $_CHIPNAME cpu -expected-id $_DAP_TAPID
|
|
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu
|
|
|
|
# Initialize the target name and command variable.
|
|
set _TARGETNAME $_CHIPNAME.cpu
|
|
set _smp_command ""
|
|
|
|
# CTI relative address
|
|
set $_TARGETNAME.cti(0) 0xC4020000
|
|
set $_TARGETNAME.cti(1) 0xC4120000
|
|
set $_TARGETNAME.cti(2) 0xC8020000
|
|
set $_TARGETNAME.cti(3) 0xC8120000
|
|
set $_TARGETNAME.cti(4) 0xCC020000
|
|
set $_TARGETNAME.cti(5) 0xCC120000
|
|
set $_TARGETNAME.cti(6) 0xD0020000
|
|
set $_TARGETNAME.cti(7) 0xD0120000
|
|
set $_TARGETNAME.cti(8) 0xD4020000
|
|
set $_TARGETNAME.cti(9) 0xD4120000
|
|
set $_TARGETNAME.cti(10) 0xD8020000
|
|
set $_TARGETNAME.cti(11) 0xD8120000
|
|
set $_TARGETNAME.cti(12) 0xDC020000
|
|
set $_TARGETNAME.cti(13) 0xDC120000
|
|
set $_TARGETNAME.cti(14) 0xE0020000
|
|
set $_TARGETNAME.cti(15) 0xE0120000
|
|
|
|
# Create debug targets for a number of cores starting from core '_core_start'.
|
|
# Adjust the numbers according to board configuration.
|
|
set _core_start 0
|
|
set _cores 16
|
|
|
|
# Create each core
|
|
for { set _core $_core_start } { $_core < $_core_start + $_cores } { incr _core 1 } {
|
|
cti create cti$_core -dap $_CHIPNAME.dap -ctibase [set $_TARGETNAME.cti($_core)] -ap-num 0
|
|
|
|
set _command "target create ${_TARGETNAME}$_core aarch64 \
|
|
-dap $_CHIPNAME.dap -coreid $_core -cti cti$_core"
|
|
|
|
if { $_core != $_core_start } {
|
|
set _smp_command "$_smp_command ${_TARGETNAME}$_core"
|
|
} else {
|
|
set _smp_command "target smp ${_TARGETNAME}$_core"
|
|
}
|
|
|
|
eval $_command
|
|
}
|
|
|
|
# Configure SMP
|
|
if { $_cores > 1 } {
|
|
eval $_smp_command
|
|
}
|
|
|
|
# Make sure the default target is the boot core
|
|
targets ${_TARGETNAME}0
|
|
|
|
proc core_up { args } {
|
|
global _TARGETNAME
|
|
|
|
# Examine remaining cores
|
|
foreach _core [set args] {
|
|
${_TARGETNAME}$_core arp_examine
|
|
}
|
|
}
|