e6f2ecbf9d2593fdb1b60eaf5db1e71b35437572
[fw/openocd] / tcl / target / swm050.cfg
1 # Synwit SWM050
2
3 source [find target/swj-dp.tcl]
4
5 if { [info exists CHIPNAME] } {
6         set _CHIPNAME $CHIPNAME
7 } else {
8         set _CHIPNAME swm050
9 }
10 set _CHIPSERIES swm050
11
12 if { [info exists WORKAREASIZE] } {
13         set _WORKAREASIZE $WORKAREASIZE
14 } else {
15         set _WORKAREASIZE 0x400
16 }
17
18 if { [info exists CPUTAPID] } {
19         set _CPUTAPID $CPUTAPID
20 } else {
21         set _CPUTAPID 0x0bb11477
22 }
23
24 swj_newdap $_CHIPNAME cpu -expected-id $_CPUTAPID
25 dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu
26 set _TARGETNAME $_CHIPNAME.cpu
27 target create $_TARGETNAME cortex_m -dap $_CHIPNAME.dap
28 $_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE
29 set _FLASHNAME $_CHIPNAME.flash
30 flash bank $_FLASHNAME swm050 0x0 0x2000 0 0 $_TARGETNAME
31
32 adapter speed 1000
33
34 $_TARGETNAME configure -event reset-init {
35         # Stop the watchdog, just to be safe
36         mww 0x40019000 0x00
37         # Set clock divider value to 1
38         mww 0x400F0000 0x01
39         # Set system clock to 18Mhz
40         mww 0x400F0008 0x00
41 }
42
43 # SWM050 (Cortex-M0 core) supports SYSRESETREQ
44 if {![using_hla]} {
45     # if srst is not fitted use SYSRESETREQ to
46     # perform a soft reset
47     cortex_m reset_config sysresetreq
48 }