aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErhan Kurubas <erhan.kurubas@espressif.com>2022-06-18 23:16:37 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2022-07-02 08:25:00 +0000
commit6eda28ef67ba183f75ce0013828fd0e5e47eb83a (patch)
treeb9b60afec4bcc94a70bddcd190274d84db40261c
parentc1ef4e52079c4aaf7aec2cda7bec46406bc8bbac (diff)
downloadriscv-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>
-rw-r--r--tcl/target/esp32s3.cfg49
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 }