aboutsummaryrefslogtreecommitdiff
path: root/tcl
diff options
context:
space:
mode:
authorAndreas Bomholtz <andreas@seluxit.com>2015-01-08 14:08:26 +0100
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>2015-02-11 22:05:22 +0000
commitbdbe78f13114d9aed125af682c9efb454cb1c115 (patch)
treee8fc37b56201efbaad77ceddad8337c1c7a7ac59 /tcl
parent233f8859c0e5d0f6b94beba5435b56bda27c30e1 (diff)
downloadriscv-openocd-bdbe78f13114d9aed125af682c9efb454cb1c115.zip
riscv-openocd-bdbe78f13114d9aed125af682c9efb454cb1c115.tar.gz
riscv-openocd-bdbe78f13114d9aed125af682c9efb454cb1c115.tar.bz2
sim3x: new flash driver for Silabs SiM3 microcontroller family
This is a new driver for Silicon Laboratories SiM3 microcontroller family, based on the work of Ladislav Bábel. The driver will try to detect the type of MCU from the device id register, and if this fails it will use the flash size from the flash bank command. Driver added to the documentation and to the README. TCL script added. Tests: * Hardware: SiM3C166 (pre-production) and SiM3U167 * Binary: 4kb, 197kb, 256kb * Flash protect not tested Change-Id: I701e0cf505ca8ad99be7f83543fe5055b2f65dcc Signed-off-by: Andreas Bomholtz <andreas@seluxit.com> Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/2078 Tested-by: jenkins
Diffstat (limited to 'tcl')
-rwxr-xr-xtcl/target/sim3x.cfg55
1 files changed, 55 insertions, 0 deletions
diff --git a/tcl/target/sim3x.cfg b/tcl/target/sim3x.cfg
new file mode 100755
index 0000000..f721f36
--- /dev/null
+++ b/tcl/target/sim3x.cfg
@@ -0,0 +1,55 @@
+#
+# Silicon Laboratories SiM3x Cortex-M3
+#
+
+# SiM3x devices support both JTAG and SWD transports.
+source [find target/swj-dp.tcl]
+
+if { [info exists CHIPNAME] } {
+ set _CHIPNAME $CHIPNAME
+} else {
+ set _CHIPNAME SiM3x
+}
+
+if { [info exists CPUTAPID] } {
+ set _CPUTAPID $CPUTAPID
+} else {
+ set _CPUTAPID 0x4ba00477
+}
+
+if { [info exists CPURAMSIZE] } {
+ set _CPURAMSIZE $CPURAMSIZE
+} else {
+# Minimum size of RAM in the Silicon Labs product matrix (8KB)
+ set _CPURAMSIZE 0x2000
+}
+
+if { [info exists CPUROMSIZE] } {
+ set _CPUROMSIZE $CPUROMSIZE
+} else {
+# Minimum size of FLASH in the Silicon Labs product matrix (32KB)
+ set _CPUROMSIZE 0x8000
+}
+
+if { [info exists WORKAREASIZE] } {
+ set _WORKAREASIZE $WORKAREASIZE
+} else {
+ set _WORKAREASIZE $_CPURAMSIZE
+}
+
+swj_newdap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID
+
+set _TARGETNAME $_CHIPNAME.cpu
+target create $_TARGETNAME cortex_m -chain-position $_TARGETNAME
+
+$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE
+
+set _FLASHNAME $_CHIPNAME.flash
+flash bank $_FLASHNAME sim3x 0 $_CPUROMSIZE 0 0 $_TARGETNAME
+
+adapter_khz 1000
+
+adapter_nsrst_delay 100
+if {[using_jtag]} {
+ jtag_ntrst_delay 100
+}