2
0
mirror of git://git.code.sf.net/p/openocd/code synced 2025-07-18 22:42:25 +10:00
openocd/tcl/target/esp32s2.cfg
Ian Thompson ce5ca9f7ba target: add generic Xtensa LX support
Generic Xtensa LX support extends the original Espressif/Xtensa
patch-set to support arbitrary Xtensa configurations, as defined in
a core-specific .cfg file.  Not yet fully-featured.  Additional
functionality to be added:
- Xtensa NX support
- DAP/SWD support
- File-IO support
- Generic Xtensa multi-core support

Valgrind-clean, no new Clang analyzer warnings

Signed-off-by: Ian Thompson <ianst@cadence.com>
Change-Id: I08e7bf8fa57c25b5d0cb75a1aa7a2ac13a380c52
Reviewed-on: https://review.openocd.org/c/openocd/+/7055
Tested-by: jenkins
Reviewed-by: Erhan Kurubas <erhan.kurubas@espressif.com>
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2022-08-20 15:38:41 +00:00

68 lines
1.5 KiB
INI

# SPDX-License-Identifier: GPL-2.0-or-later
#
# The ESP32-S2 only supports JTAG.
transport select jtag
set CPU_MAX_ADDRESS 0xFFFFFFFF
source [find bitsbytes.tcl]
source [find memory.tcl]
source [find mmr_helpers.tcl]
if { [info exists CHIPNAME] } {
set _CHIPNAME $CHIPNAME
} else {
set _CHIPNAME esp32s2
}
if { [info exists CPUTAPID] } {
set _CPUTAPID $CPUTAPID
} else {
set _CPUTAPID 0x120034e5
}
set _TARGETNAME $_CHIPNAME
set _CPUNAME cpu
set _TAPNAME $_CHIPNAME.$_CPUNAME
jtag newtap $_CHIPNAME $_CPUNAME -irlen 5 -expected-id $_CPUTAPID
proc esp32s2_memprot_is_enabled { } {
# IRAM0, DPORT_PMS_PRO_IRAM0_0_REG
if { [get_mmr_bit 0x3f4c1010 0] != 0 } {
return 1
}
# DRAM0, DPORT_PMS_PRO_DRAM0_0_REG
if { [get_mmr_bit 0x3f4c1028 0] != 0 } {
return 1
}
# PERI1, DPORT_PMS_PRO_DPORT_0_REG
if { [get_mmr_bit 0x3f4c103c 0] != 0 } {
return 1
}
# PERI2, DPORT_PMS_PRO_AHB_0_REG
if { [get_mmr_bit 0x3f4c105c 0] != 0 } {
return 1
}
return 0
}
target create $_TARGETNAME esp32s2 -endian little -chain-position $_TAPNAME
$_TARGETNAME configure -event gdb-attach {
# necessary to auto-probe flash bank when GDB is connected and generate proper memory map
halt 1000
if { [esp32s2_memprot_is_enabled] } {
# 'reset halt' to disable memory protection and allow flasher to work correctly
echo "Memory protection is enabled. Reset target to disable it..."
reset halt
}
}
xtensa maskisr on
$_TARGETNAME configure -event reset-assert-post { soft_reset_halt }
gdb_breakpoint_override hard
source [find target/xtensa-core-esp32s2.cfg]