cfg: update for target's that support cortex_m AIRCR SYSRESETREQ
[openocd.git] / tcl / target / at91sam3XXX.cfg
1 # script for ATMEL sam3, a CORTEX-M3 chip
2 #
3 # at91sam3u4e
4 # at91sam3u2e
5 # at91sam3u1e
6 # at91sam3u4c
7 # at91sam3u2c
8 # at91sam3u1c
9 #
10 # at91sam3s4c
11 # at91sam3s4b
12 # at91sam3s4a
13 # at91sam3s2c
14 # at91sam3s2b
15 # at91sam3s2a
16 # at91sam3s1c
17 # at91sam3s1b
18 # at91sam3s1a
19 #
20 # at91sam3A4C
21 # at91sam3A8C
22 # at91sam3X4C
23 # at91sam3X4E
24 # at91sam3X8C
25 # at91sam3X8E
26 # at91sam3X8H
27 if { [info exists CHIPNAME] } {
28    set _CHIPNAME $CHIPNAME
29 } else {
30    set _CHIPNAME sam3
31 }
32
33 if { [info exists ENDIAN] } {
34    set _ENDIAN $ENDIAN
35 } else {
36    set _ENDIAN little
37 }
38
39 # JTAG speed should be <= F_CPU/6. F_CPU after reset is 4 MHz, so use F_JTAG = 0.5MHz
40 #
41 # Since we may be running of an RC oscilator, we crank down the speed a
42 # bit more to be on the safe side. Perhaps superstition, but if are
43 # running off a crystal, we can run closer to the limit. Note
44 # that there can be a pretty wide band where things are more or less stable.
45
46 adapter_khz 500
47
48 adapter_nsrst_delay 100
49 jtag_ntrst_delay 100
50
51 #jtag scan chain
52 if { [info exists CPUTAPID] } {
53    set _CPUTAPID $CPUTAPID
54 } else {
55    set _CPUTAPID 0x4ba00477
56 }
57
58 jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
59
60 set _TARGETNAME $_CHIPNAME.cpu
61 target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME
62
63 # 16K is plenty, the smallest chip has this much
64 $_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size 16384 -work-area-backup 0
65
66 $_TARGETNAME configure -event gdb-flash-erase-start {
67     halt
68 }
69
70 # if srst is not fitted use SYSRESETREQ to
71 # perform a soft reset
72 cortex_m3 reset_config sysresetreq