diff options
author | Erhan Kurubas <erhan.kurubas@espressif.com> | 2022-06-18 23:16:37 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2022-07-02 08:25:00 +0000 |
commit | 6eda28ef67ba183f75ce0013828fd0e5e47eb83a (patch) | |
tree | b9b60afec4bcc94a70bddcd190274d84db40261c /tcl/target/esp32s3.cfg | |
parent | c1ef4e52079c4aaf7aec2cda7bec46406bc8bbac (diff) | |
download | riscv-openocd-6eda28ef67ba183f75ce0013828fd0e5e47eb83a.zip riscv-openocd-6eda28ef67ba183f75ce0013828fd0e5e47eb83a.tar.gz riscv-openocd-6eda28ef67ba183f75ce0013828fd0e5e47eb83a.tar.bz2 |
tcl/esp32s3: check memory protection on gdb attach
Memory protection must be disabled to allow stub flasher
operate correctly.
Signed-off-by: Erhan Kurubas <erhan.kurubas@espressif.com>
Change-Id: I6f292ee672ae001cd6e4df5d24eb7bb862639093
Reviewed-on: https://review.openocd.org/c/openocd/+/7037
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'tcl/target/esp32s3.cfg')
-rw-r--r-- | tcl/target/esp32s3.cfg | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/tcl/target/esp32s3.cfg b/tcl/target/esp32s3.cfg index 0570501..967c3a2 100644 --- a/tcl/target/esp32s3.cfg +++ b/tcl/target/esp32s3.cfg @@ -39,7 +39,50 @@ if { $_ONLYCPU != 1 } { } proc esp32s3_memprot_is_enabled { } { - # TODO: after https://review.openocd.org/c/openocd/+/7016 merged + # SENSITIVE_CORE_X_IRAM0_DRAM0_DMA_SPLIT_LINE_CONSTRAIN_0_REG + if { [get_mmr_bit 0x600C10C0 0] != 0 } { + return 1 + } + # SENSITIVE_CORE_0_PIF_PMS_CONSTRAIN_0_REG + if { [get_mmr_bit 0x600C1124 0] != 0 } { + return 1 + } + # SENSITIVE_CORE_1_PIF_PMS_CONSTRAIN_0_REG + if { [get_mmr_bit 0x600C11D0 0] != 0 } { + return 1 + } + # IRAM0, SENSITIVE_CORE_X_IRAM0_PMS_CONSTRAIN_0_REG + if { [get_mmr_bit 0x600C10D8 0] != 0 } { + return 1 + } + # DRAM0, SENSITIVE_CORE_X_DRAM0_PMS_CONSTRAIN_0_REG + if { [get_mmr_bit 0x600C10FC 0] != 0 } { + return 1 + } + # SENSITIVE_CORE_0_IRAM0_PMS_MONITOR_0_REG + if { [get_mmr_bit 0x600C10E4 0] != 0 } { + return 1 + } + # SENSITIVE_CORE_1_IRAM0_PMS_MONITOR_0_REG + if { [get_mmr_bit 0x600C10F0 0] != 0 } { + return 1 + } + # SENSITIVE_CORE_0_DRAM0_PMS_MONITOR_0_REG + if { [get_mmr_bit 0x600C1104 0] != 0 } { + return 1 + } + # SENSITIVE_CORE_1_DRAM0_PMS_MONITOR_0_REG + if { [get_mmr_bit 0x600C1114 0] != 0 } { + return 1 + } + # SENSITIVE_CORE_0_PIF_PMS_MONITOR_0_REG + if { [get_mmr_bit 0x600C119C 0] != 0 } { + return 1 + } + # SENSITIVE_CORE_1_PIF_PMS_MONITOR_0_REG + if { [get_mmr_bit 0x600C1248 0] != 0 } { + return 1 + } return 0 } @@ -56,13 +99,13 @@ $_TARGETNAME_0 xtensa smpbreak BreakIn BreakOut $_TARGETNAME_0 configure -event gdb-attach { $_TARGETNAME_0 xtensa smpbreak BreakIn BreakOut - # necessary to auto-probe flash bank when GDB is connected + # necessary to auto-probe flash bank when GDB is connected and generate proper memory map halt 1000 if { [esp32s3_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 - } + } } $_TARGETNAME_0 configure -event reset-assert-post { soft_reset_halt } |