| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- # 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]
- # Source the ESP common configuration file
- source [find target/esp_common.cfg]
- 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 examine-end {
- # Need to enable to set 'semihosting_basedir'
- arm semihosting enable
- arm semihosting_resexit enable
- if { [info exists _SEMIHOST_BASEDIR] } {
- if { $_SEMIHOST_BASEDIR != "" } {
- arm semihosting_basedir $_SEMIHOST_BASEDIR
- }
- }
- }
- $_TARGETNAME configure -event reset-assert-post { soft_reset_halt }
- gdb_breakpoint_override hard
- source [find target/xtensa-core-esp32s2.cfg]
|