add at91rm9200-ek board support
[fw/openocd] / tcl / board / at91rm9200-ek.cfg
1 #
2 # Copyright 2010 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
3 #
4 # under GPLv2 Only
5 #
6 # This is for the "at91rm9200-ek" eval board.
7 #
8 #
9 # It has atmel at91rm9200 chip.
10 source [find target/at91rm9200.cfg]
11
12 reset_config trst_and_srst
13
14 $_TARGETNAME configure -event gdb-attach { reset init }
15 $_TARGETNAME configure -event reset-init { at91rm9200_ek_init }
16
17 ## flash bank <name> <driver> <base> <size> <chip_width> <bus_width> <target>
18 set _FLASHNAME $_CHIPNAME.flash
19 flash bank $_FLASHNAME cfi 0x10000000 0x00800000 2 2 $_TARGETNAME
20
21
22 proc at91rm9200_ek_init { } {
23         # Try to run at 1khz... Yea, that slow!
24         # Chip is really running @ 32khz
25         adapter_khz 8
26
27         mww 0xfffffc64 0xffffffff
28         ## disable all clocks but system clock
29         mww 0xfffffc04 0xfffffffe
30         ## disable all clocks to pioa and piob
31         mww 0xfffffc14 0xffffffc3
32         ## master clock = slow cpu = slow
33         ## (means the CPU is running at 32khz!)
34         mww 0xfffffc30 0
35         ## main osc enable
36         mww 0xfffffc20 0x0000ff01
37         ## MC_PUP
38         mww 0xFFFFFF50 0x00000000
39         ## MC_PUER: Memory controller protection unit disable
40         mww 0xFFFFFF54 0x00000000
41         ## EBI_CFGR
42         mww 0xFFFFFF64 0x00000000
43         ## SMC2_CSR[0]: 16bit, 2 TDF, 4 WS
44         mww 0xFFFFFF70 0x00003284
45
46         ## Init Clocks
47         ## CKGR_PLLAR
48         mww 0xFFFFFC28 0x2000BF05
49         ## PLLAR: 179,712000 MHz for PCK
50         mww 0xFFFFFC28 0x20263E04
51         sleep 100
52         ## PMC_MCKR
53         mww 0xFFFFFC30 0x00000100
54         sleep 100
55         ## ;MCKR : PCK/3 = MCK Master Clock = 59,904000MHz from PLLA
56         mww 0xFFFFFC30 0x00000202
57         sleep 100
58
59         #========================================
60         # CPU now runs at 180mhz
61         # SYS runs at 60mhz.
62         adapter_khz 40000
63         #========================================
64
65         ## Init SDRAM
66         ## PIOC_ASR: Configure PIOC as peripheral (D16/D31)
67         mww 0xFFFFF870 0xFFFF0000
68         ## PIOC_BSR:
69         mww 0xFFFFF874 0x00000000
70         ## PIOC_PDR:
71         mww 0xFFFFF804 0xFFFF0000
72         ## EBI_CSA : CS1=SDRAM
73         mww 0xFFFFFF60 0x00000002
74         ## EBI_CFGR:
75         mww 0xFFFFFF64 0x00000000
76         ## SDRC_CR :
77         mww 0xFFFFFF98 0x2188c155
78         ## SDRC_MR : Precharge All
79         mww 0xFFFFFF90 0x00000002
80         ## access SDRAM
81         mww 0x20000000 0x00000000
82         ## SDRC_MR : Refresh
83         mww 0xFFFFFF90 0x00000004
84         ## access SDRAM
85         mww 0x20000000 0x00000000
86         ## access SDRAM
87         mww 0x20000000 0x00000000
88         ## access SDRAM
89         mww 0x20000000 0x00000000
90         ## access SDRAM
91         mww 0x20000000 0x00000000
92         ## access SDRAM
93         mww 0x20000000 0x00000000
94         ## access SDRAM
95         mww 0x20000000 0x00000000
96         ## access SDRAM
97         mww 0x20000000 0x00000000
98         ## access SDRAM
99         mww 0x20000000 0x00000000
100         ## SDRC_MR : Load Mode Register
101         mww 0xFFFFFF90 0x00000003
102         ## access SDRAM
103         mww 0x20000080 0x00000000
104         ## SDRC_TR : Write refresh rate
105         mww 0xFFFFFF94 0x000002E0
106         ## access SDRAM
107         mww 0x20000000 0x00000000
108         ## SDRC_MR : Normal Mode
109         mww 0xFFFFFF90 0x00000000
110         ## access SDRAM
111         mww 0x20000000 0x00000000
112 }