mirror of
git://git.code.sf.net/p/openocd/code
synced 2025-07-24 05:59:49 +10:00
Active watchdog forces reset during armv7m_checksum_memory() in verify_image command if run just after reset init. COP watchdog in KL series and WDOG32 in KE1 series have longer timeout however they need to be disabled too. The change extends 'kinetis disable_wdog' command to optionally probe the chip and use appropriate algorithm to disable watchdog. Setting of cache type is also split from flash_support flags. Tcl command 'kinetis disable_wdog' is called in reset-init event. Change-Id: I3191e230f38b679ed74f2a97fe323ef8fb3fe22e Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: http://openocd.zylin.com/3901 Tested-by: jenkins Reviewed-by: Joakim Nohlgård <joakim.nohlgard@eistec.se> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
65 lines
1.5 KiB
INI
65 lines
1.5 KiB
INI
#
|
|
# NXP (former Freescale) Kinetis Kx series devices
|
|
# Also used for Cortex-M4 equipped members of KVx and KE1xF series
|
|
#
|
|
|
|
source [find target/swj-dp.tcl]
|
|
|
|
if { [info exists CHIPNAME] } {
|
|
set _CHIPNAME $CHIPNAME
|
|
} else {
|
|
set _CHIPNAME kx
|
|
}
|
|
|
|
# Work-area is a space in RAM used for flash programming
|
|
# By default use 4kB
|
|
if { [info exists WORKAREASIZE] } {
|
|
set _WORKAREASIZE $WORKAREASIZE
|
|
} else {
|
|
set _WORKAREASIZE 0x1000
|
|
}
|
|
|
|
if { [info exists CPUTAPID] } {
|
|
set _CPUTAPID $CPUTAPID
|
|
} else {
|
|
if { [using_jtag] } {
|
|
set _CPUTAPID 0x4ba00477
|
|
} {
|
|
set _CPUTAPID 0x2ba01477
|
|
}
|
|
}
|
|
|
|
swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
|
|
|
|
set _TARGETNAME $_CHIPNAME.cpu
|
|
target create $_TARGETNAME cortex_m -chain-position $_CHIPNAME.cpu
|
|
|
|
$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0
|
|
|
|
set _FLASHNAME $_CHIPNAME.pflash
|
|
flash bank $_FLASHNAME kinetis 0 0 0 0 $_TARGETNAME
|
|
kinetis create_banks
|
|
|
|
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
|
|
}
|
|
|
|
# Disable watchdog not to disturb OpenOCD algorithms running on MCU
|
|
# (e.g. armv7m_checksum_memory() in verify_image)
|
|
# Flash driver also disables watchdog before FTFA flash programming.
|
|
$_TARGETNAME configure -event reset-init {
|
|
kinetis disable_wdog
|
|
}
|
|
|