dc5aacbf05fd1bc871aec7d25400bcb67d8415fc
[fw/openocd] / tcl / board / at91eb40a.cfg
1 #Script for AT91EB40a
2
3 # FIXME use some standard target config, maybe create one from this
4 #
5 #       source [find target/...cfg]
6
7 if { [info exists CHIPNAME] } {
8    set  _CHIPNAME $CHIPNAME
9 } else {
10    set  _CHIPNAME at91eb40a
11 }
12
13 if { [info exists ENDIAN] } {
14    set  _ENDIAN $ENDIAN
15 } else {
16    set  _ENDIAN little
17 }
18
19 if { [info exists CPUTAPID ] } {
20    set _CPUTAPID $CPUTAPID
21 } else {
22   # force an error till we get a good number
23    set _CPUTAPID 0x1f0f0f0f
24 }
25
26
27 #Atmel ties SRST & TRST together, at which point it makes
28 #no sense to use TRST, but use TMS instead.
29 #
30 #The annoying thing with tying SRST & TRST together is that
31 #there is no way to halt the CPU *before and during* the
32 #SRST reset, which means that the CPU will run a number
33 #of cycles before it can be halted(as much as milliseconds).
34 reset_config srst_only srst_pulls_trst
35
36 #jtag scan chain
37 jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
38
39 #target configuration
40 set _TARGETNAME $_CHIPNAME.cpu
41 target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME
42
43 # speed up memory downloads
44 arm7_9 fast_memory_access enable
45 arm7_9 dcc_downloads enable
46
47 #flash driver
48 set _FLASHNAME $_CHIPNAME.flash
49 flash bank $_FLASHNAME ecosflash 0x01000000 0x200000 2 2 $_TARGETNAME ecos/at91eb40a.elf
50
51 # required for usable performance. Used for lots of
52 # other things than flash programming.
53 $_TARGETNAME configure -work-area-phys 0x00030000 -work-area-size 0x10000 -work-area-backup 0
54
55 $_TARGETNAME configure -event reset-init {
56         echo "Running reset init script for AT91EB40A"
57         # Reset script for AT91EB40a
58         reg cpsr 0x000000D3
59         mww 0xFFE00020 0x1
60         mww 0xFFE00024 0x00000000
61         mww 0xFFE00000 0x01002539
62         mww 0xFFFFF124 0xFFFFFFFF
63         mww 0xffff0010 0x100
64         mww 0xffff0034 0x100
65 }
66
67 # This target is pretty snappy...
68 adapter_khz 16000