flash Kinetis: Detect RESET/WDOG loop, fix detection of secured MCU
[fw/openocd] / tcl / target / klx.cfg
index d2d2c284317279ecb0782081669439f866d9744b..0df6612f708d93a9919e6feabf669f0765c784f3 100644 (file)
@@ -29,14 +29,6 @@ swj_newdap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID
 set _TARGETNAME $_CHIPNAME.cpu
 target create $_TARGETNAME cortex_m -chain-position $_CHIPNAME.cpu
 
-# It is important that "kinetis mdm check_security" is called for
-# 'examine-end' event and not 'eximine-start'. Calling it in 'examine-start'
-# causes "kinetis mdm check_security" to fail the first time openocd
-# calls it when it tries to connect after the CPU has been power-cycled.
-$_CHIPNAME.cpu configure -event examine-end {
-       kinetis mdm check_security
-}
-
 $_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0
 
 set _FLASHNAME $_CHIPNAME.flash
@@ -49,14 +41,20 @@ adapter_khz 1000
 reset_config srst_nogate
 
 if {![using_hla]} {
+   # Detect secured MCU or boot lock-up in RESET/WDOG loop
+   $_CHIPNAME.cpu configure -event examine-start {
+      kinetis mdm check_security
+   }
+
    # if srst is not fitted use SYSRESETREQ to
    # perform a soft reset
    cortex_m reset_config sysresetreq
 }
 
-$_TARGETNAME configure -event reset-init {
-    # Table 5-1. Clock Summary of KL25 Sub-Family Reference Manual
-    # specifies up to 24MHz for run mode; Table 17 of Sub-Family Data
-    # Sheet rev4 lists 25MHz as the maximum frequency.
-    adapter_khz 24000
-}
+# Table 5-1. Clock Summary of KL25 Sub-Family Reference Manual
+# specifies up to 24MHz for run mode; Table 17 of Sub-Family Data
+# Sheet rev4 lists 25MHz as the maximum frequency.
+# Uncoment only if VLPR mode is not used
+#$_TARGETNAME configure -event reset-init {
+#   adapter_khz 24000
+#}