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