2
0
mirror of git://git.code.sf.net/p/openocd/code synced 2025-08-07 08:27:02 +10:00
openocd/tcl/target/nrf91.cfg
Tomas Vanek 17be341d38 tcl/target: add nRF53 and nRF91 config files
Both devices can be configured with or without SWD multidrop.

nRF53 network core is examined on demand to avoid problems
when the core is forced off.

Change-Id: I08f88ff48ff7ac592e9214b89ca8e5e9428573a5
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: https://review.openocd.org/c/openocd/+/8113
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Tested-by: jenkins
2024-06-08 09:12:14 +00:00

64 lines
1.7 KiB
INI

# SPDX-License-Identifier: GPL-2.0-or-later
#
# Nordic nRF91 series: ARM Cortex-M33, SWD only
#
source [find target/swj-dp.tcl]
source [find mem_helper.tcl]
if { [info exists CHIPNAME] } {
set _CHIPNAME $CHIPNAME
} else {
set _CHIPNAME nrf91
}
# Work-area is a space in RAM used for flash programming
# By default use 16kB
if { [info exists WORKAREASIZE] } {
set _WORKAREASIZE $WORKAREASIZE
} else {
set _WORKAREASIZE 0x4000
}
if { [info exists CPUTAPID] } {
set _CPUTAPID $CPUTAPID
} else {
set _CPUTAPID 0x6ba02477
}
swj_newdap $_CHIPNAME cpu -expected-id $_CPUTAPID
# Contrary to the product specification at least nRF9161 supports multidrop SWD.
# The instance ID is fixed, no more than one nRF91 can be connected to one SWD bus.
if { [info exists SWD_MULTIDROP] } {
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu -dp-id 0x0090289 -instance-id 0
} else {
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu
}
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m -dap $_CHIPNAME.dap
# Keep adapter speed less or equal 2000 kHz or flash programming fails!
adapter speed 1000
$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0
source [find target/nrf_common.cfg]
flash bank $_CHIPNAME.flash nrf5 0x00000000 0 0 0 $_TARGETNAME
flash bank $_CHIPNAME.uicr nrf5 0x00FF8000 0 0 0 $_TARGETNAME
if { ![using_hla] } {
$_TARGETNAME cortex_m reset_config sysresetreq
$_TARGETNAME configure -event examine-fail { _nrf_check_ap_lock 4 3 }
}
# Mass erase and unlock the device using proprietary nRF CTRL-AP (AP #4)
proc nrf91_recover {} {
_nrf_ctrl_ap_recover 4
}
add_help_text nrf91_recover "Mass erase and unlock nRF91 device"