tcl/target: Enable using vectreset for CC3320SF targets 89/5489/4
authorEdward Fewell <efewell@ti.com>
Mon, 2 Mar 2020 20:04:24 +0000 (14:04 -0600)
committerAntonio Borneo <borneo.antonio@gmail.com>
Tue, 24 Mar 2020 17:18:31 +0000 (17:18 +0000)
On CC32xx family of devices, sysrequest is disabled, and
vectreset is blocked by the boot loader (stops in a while(1)
statement). srst reset can leave the target in a state
that prevents debug.

This change enables using vectreset on SF variants by
moving the PC to the start of the user application in
internal flash. This allows for a more reliable reset,
but with two caveats:

1) This only works for the SF variant with internal
   flash.

2) This only resets the CPU and not any peripherals.

Tested on CC3220SF rev B Launchpad in both SWD and
JTAG modes. Confirmed proper behavior of reset,
reset init, reset halt, and reset run commands.

Update: reworked per comment in code review. Re-tested
with CC3220SF Launchpad as both CC3220SF and as
CC32xx board to confirm reset behavior as expected.

Update: Added adapter srst delay 1100 line to the
CC3200 LaunchXL configuration file.

Change-Id: Ibc042d785c846c2223ae55b8f2410b75ed2df354
Signed-off-by: Edward Fewell <efewell@ti.com>
Reviewed-on: http://openocd.zylin.com/5489
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
tcl/board/ti_cc3200_launchxl.cfg
tcl/board/ti_cc32xx_launchpad.cfg
tcl/target/ti_cc3220sf.cfg
tcl/target/ti_cc32xx.cfg

index 34f9bffb85549f2e010dccfdacaad2f9aaa571e7..b37b406ad6dc32a8df0be962a18bf3fbc9a42f1e 100644 (file)
@@ -18,3 +18,4 @@ set WORKAREASIZE 0x40000
 source [find target/ti_cc32xx.cfg]
 
 reset_config srst_only
+adapter srst delay 1100
index 1df461a93b53989ff282f2a93d02b91b90fafdf8..d0f2a831cd705ef8cb53d5b4c1492f6118c978c0 100644 (file)
@@ -5,3 +5,6 @@ source [find interface/xds110.cfg]
 adapter speed 8500
 transport select swd
 source [find target/ti_cc32xx.cfg]
+
+reset_config srst_only
+adapter srst delay 1100
index f7d9bfe17aab2aff1e67d2584d4b9f1dc3b74609..3e758e6ab2adc8006944a9850188455b295342c0 100644 (file)
@@ -10,3 +10,31 @@ source [find target/ti_cc32xx.cfg]
 
 set _FLASHNAME $_CHIPNAME.flash
 flash bank $_FLASHNAME cc3220sf 0 0 0 0 $_TARGETNAME
+
+#
+# On CC32xx family of devices, sysreqreset is disabled, and vectreset is
+# blocked by the boot loader (stops in a while(1) statement). srst reset can
+# leave the target in a state that prevents debug. The following uses the
+# soft_reset_halt command to reset and halt the target. Then the PC and stack
+# are initialized from internal flash. This allows for a more reliable reset,
+# but with two caveats: it only works for the SF variant that has internal
+# flash, and it only resets the CPU and not any peripherals.
+#
+
+proc ocd_process_reset_inner { MODE } {
+
+       soft_reset_halt
+
+       # Intialize MSP, PSP, and PC from vector table at flash 0x01000800
+       mem2array boot 32 0x01000800 2
+
+       reg msp $boot(0)
+       reg psp $boot(0)
+       reg pc $boot(1)
+
+       if { 0 == [string compare $MODE run ] } {
+               resume
+       }
+
+       cc32xx.cpu invoke-event reset-end
+}
index 6f91d3fd3ee35ba35a8a7acb3ed3dc2ebd1a33b7..e3e3ebc928703f7662dbe16e3ac6afd25edd81e3 100644 (file)
@@ -59,6 +59,3 @@ if { [info exists WORKAREASIZE] } {
 }
 
 $_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0
-
-reset_config srst_only
-adapter srst delay 1100

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)