diff options
Diffstat (limited to 'tcl/target')
-rw-r--r-- | tcl/target/kl25.cfg | 48 | ||||
-rw-r--r-- | tcl/target/lpc11uxx.cfg | 48 | ||||
-rw-r--r-- | tcl/target/lpc17xx.cfg | 10 | ||||
-rw-r--r-- | tcl/target/swj-dp.tcl | 11 |
4 files changed, 110 insertions, 7 deletions
diff --git a/tcl/target/kl25.cfg b/tcl/target/kl25.cfg new file mode 100644 index 00000000..c5dda151 --- /dev/null +++ b/tcl/target/kl25.cfg @@ -0,0 +1,48 @@ +# +# Freescale Kinetis KL25 devices +# + +# +# KL25 devices support both JTAG and SWD transports. +# +source [find target/swj-dp.tcl] + +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME kl25 +} + +if { [info exists ENDIAN] } { + set _ENDIAN $ENDIAN +} else { + set _ENDIAN little +} + +# 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 { + set _CPUTAPID 0x0bc11477 +} + +swj_newdap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID + +set _TARGETNAME $_CHIPNAME.cpu +target create $_TARGETNAME cortex_m -endian $_ENDIAN -chain-position $_CHIPNAME.cpu + +$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0 + +set _FLASHNAME $_CHIPNAME.flash +flash bank $_FLASHNAME kinetis 0 0 0 0 $_TARGETNAME + +# if srst is not fitted use SYSRESETREQ to +# perform a soft reset +cortex_m reset_config sysresetreq diff --git a/tcl/target/lpc11uxx.cfg b/tcl/target/lpc11uxx.cfg new file mode 100644 index 00000000..6968fcd8 --- /dev/null +++ b/tcl/target/lpc11uxx.cfg @@ -0,0 +1,48 @@ +# +# NXP lpc11uxx family + +source [find target/swj-dp.tcl] + +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME lpc11uxx +} + +if { [info exists ENDIAN] } { + set _ENDIAN $ENDIAN +} else { + set _ENDIAN little +} + +# Work-area is a space in RAM used for flash programming +# By default use 6kB +if { [info exists WORKAREASIZE] } { + set _WORKAREASIZE $WORKAREASIZE +} else { + set _WORKAREASIZE 0x1800 +} + +if { [info exists CPUTAPID] } { + set _CPUTAPID $CPUTAPID +} else { + set _CPUTAPID 0x00000000 +} + +# delays on reset lines +adapter_nsrst_delay 100 +#jtag_ntrst_delay 100 + +swj_newdap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID + +set _TARGETNAME $_CHIPNAME.cpu +target create $_TARGETNAME cortex_m -endian $_ENDIAN -chain-position $_TARGETNAME + +$_TARGETNAME configure -work-area-phys 0x10000000 -work-area-size $_WORKAREASIZE -work-area-backup 0 + +#set _FLASHNAME $_CHIPNAME.flash +#flash bank $_FLASHNAME lpc2000 0 0 0 0 $_TARGETNAME + +# if srst is not fitted use SYSRESETREQ to +# perform a soft reset +cortex_m reset_config sysresetreq diff --git a/tcl/target/lpc17xx.cfg b/tcl/target/lpc17xx.cfg index 01a8cd37..c81971f9 100644 --- a/tcl/target/lpc17xx.cfg +++ b/tcl/target/lpc17xx.cfg @@ -49,10 +49,6 @@ if { [info exists CPUROMSIZE] } { error "_CPUROMSIZE not set. Please do not include lpc17xx.cfg directly, but the specific chip configuration file (lpc1751.cfg, lpc1764.cfg, etc)." } -#delays on reset lines -adapter_nsrst_delay 200 -jtag_ntrst_delay 200 - #jtag newtap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID swj_newdap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID @@ -74,6 +70,12 @@ flash bank $_FLASHNAME lpc2000 0x0 $_CPUROMSIZE 0 0 $_TARGETNAME \ # we have no idea what clock the target is running at. adapter_khz 10 +# delays on reset lines +adapter_nsrst_delay 200 +if {$using_jtag} { + jtag_ntrst_delay 200 +} + $_TARGETNAME configure -event reset-init { # Do not remap 0x0000-0x0020 to anything but the flash (i.e. select # "User Flash Mode" where interrupt vectors are _not_ remapped, diff --git a/tcl/target/swj-dp.tcl b/tcl/target/swj-dp.tcl index 377b7b5f..fa44583a 100644 --- a/tcl/target/swj-dp.tcl +++ b/tcl/target/swj-dp.tcl @@ -18,8 +18,13 @@ # split out "chip" and "tag" so we can someday handle # them more uniformly irlen too...) +global using_jtag +set using_jtag 1 + proc swj_newdap {chip tag args} { -set tran [transport select] -if [string equal $tran "jtag"] { eval jtag newtap $chip $tag $args} -if [string equal $tran "swd"] { eval swd newdap $chip $tag $args } + global using_jtag + set tran [transport select] + if [string equal $tran "jtag"] { eval jtag newtap $chip $tag $args; set using_jtag 1 } + if [string equal $tran "swd"] { eval swd newdap $chip $tag $args; set using_jtag 0 } + if [string equal $tran "cmsis-dap"] { eval cmsis-dap newdap $chip $tag $args; set using_jtag 0 } } |