aboutsummaryrefslogtreecommitdiff
path: root/tcl/target
diff options
context:
space:
mode:
authorTomas Vanek <vanekt@fbl.cz>2016-12-26 15:20:33 +0100
committerFreddie Chopin <freddie.chopin@gmail.com>2017-06-17 12:01:45 +0100
commitc4d4c32a504f1a63f0200efdd175d21bfe8cc3af (patch)
tree12556fdc1140018f0a728cab49e7e75696a4b63e /tcl/target
parent1fdc62ef65b4fc1dfb15507985cdcd90faafa389 (diff)
flash Kinetis: implement automatic bank creation based on device probe
Kinetis flash driver services huge number of MCU types. They have one, two or four flash banks with option of FlexNVM. It would require ~36 config files just for Kx series, more for KLx, KVx and KE1x. The change implements alternative approach: - configuration file creates just one pflash bank (common for all devices) - when a device is probed, additional pflash or flexnvm banks are created based on flash layout of the connected MCU - created banks have names with optional numbering e.g. kx.pflash0 kx.pflash1 kx.flexnvm0 kx.flexnvm1 - the first bank gets renamed if numbering is used Automatic bank creation is enabled by tcl command 'kinetis create_banks'. Used solution has a drawback: other banks than pflash0 are not accessible until pflash0 is probed. Fortunately gdb attach and standard programming accesses banks in right sequence. Change-Id: I5b9037cbefdb8a4176b7715fbcc3af4da4c1ab60 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: http://openocd.zylin.com/3925 Tested-by: jenkins Reviewed-by: Joakim NohlgÄrd <joakim.nohlgard@eistec.se> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
Diffstat (limited to 'tcl/target')
-rw-r--r--tcl/target/ke1xf.cfg2
-rw-r--r--tcl/target/ke1xz.cfg2
-rw-r--r--tcl/target/klx.cfg6
-rw-r--r--tcl/target/kx.cfg6
4 files changed, 8 insertions, 8 deletions
diff --git a/tcl/target/ke1xf.cfg b/tcl/target/ke1xf.cfg
index 94b175f2..b1200cec 100644
--- a/tcl/target/ke1xf.cfg
+++ b/tcl/target/ke1xf.cfg
@@ -5,5 +5,3 @@
set CHIPNAME ke
source [find target/kx.cfg]
-
-flash bank flexnvm kinetis 0 0 0 0 $_TARGETNAME
diff --git a/tcl/target/ke1xz.cfg b/tcl/target/ke1xz.cfg
index db2d1a42..6a3f509e 100644
--- a/tcl/target/ke1xz.cfg
+++ b/tcl/target/ke1xz.cfg
@@ -5,5 +5,3 @@
set CHIPNAME ke
source [find target/klx.cfg]
-
-flash bank flexnvm kinetis 0 0 0 0 $_TARGETNAME
diff --git a/tcl/target/klx.cfg b/tcl/target/klx.cfg
index 0df6612f..c2de9f7d 100644
--- a/tcl/target/klx.cfg
+++ b/tcl/target/klx.cfg
@@ -1,5 +1,6 @@
#
-# Freescale Kinetis KL series devices
+# NXP (former Freescale) Kinetis KL series devices
+# Also used for Cortex-M0+ equipped members of KVx and KE1xZ series
#
source [find target/swj-dp.tcl]
@@ -31,8 +32,9 @@ 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.flash
+set _FLASHNAME $_CHIPNAME.pflash
flash bank $_FLASHNAME kinetis 0 0 0 0 $_TARGETNAME
+kinetis create_banks
# Table 5-1. Clock Summary of KL25 Sub-Family Reference Manual
# specifies up to 1MHz for VLPR mode.
diff --git a/tcl/target/kx.cfg b/tcl/target/kx.cfg
index b39ee3dd..cf777135 100644
--- a/tcl/target/kx.cfg
+++ b/tcl/target/kx.cfg
@@ -1,5 +1,6 @@
#
-# Freescale Kinetis Kx series devices
+# 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]
@@ -35,8 +36,9 @@ 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.flash
+set _FLASHNAME $_CHIPNAME.pflash
flash bank $_FLASHNAME kinetis 0 0 0 0 $_TARGETNAME
+kinetis create_banks
adapter_khz 1000