board: add configuration for freescale imx6q sabresd board
[openocd.git] / tcl / board / fsl_imx6q_sabresd.cfg
1 #
2 # Board configuration file for the Freescale IMX6Q Sabre SD EVM
3 #
4 # This board does not have an embedded JTAG adapter, you must source
5 # a suitable adapter configuration before sourcing this file.
6
7 # Sabre SD has a standard ARM-20 JTAG connector with
8 # nTRST and nSRST available.
9 reset_config trst_and_srst
10
11 # the only possible transport is JTAG
12 transport select jtag
13
14 # iMX6Q POR gates JTAG and the chip is completely incommunicado
15 # over JTAG for at least 10ms after nSRST is deasserted
16 adapter_nsrst_delay 11
17
18 # Source generic iMX6Q target configuration
19 set CHIPNAME imx6q
20 source [find target/imx6.cfg]
21
22 # function to apply initial configuration after a reset. It
23 # provides a basic pad configuration and also DDR memory and clocks
24 # sufficient to load and execute a boot loader (e.g. barebox) from
25 # DDR memory. This list is extracted from the barebox flash image
26 # header.
27 proc apply_dcd { } {
28         mww 0x020e05a8 0x00000030
29         mww 0x020e05b0 0x00000030
30         mww 0x020e0524 0x00000030
31         mww 0x020e051c 0x00000030
32         mww 0x020e0518 0x00000030
33         mww 0x020e050c 0x00000030
34         mww 0x020e05b8 0x00000030
35         mww 0x020e05c0 0x00000030
36         mww 0x020e05ac 0x00020030
37         mww 0x020e05b4 0x00020030
38         mww 0x020e0528 0x00020030
39         mww 0x020e0520 0x00020030
40         mww 0x020e0514 0x00020030
41         mww 0x020e0510 0x00020030
42         mww 0x020e05bc 0x00020030
43         mww 0x020e05c4 0x00020030
44         mww 0x020e056c 0x00020030
45         mww 0x020e0578 0x00020030
46         mww 0x020e0588 0x00020030
47         mww 0x020e0594 0x00020030
48         mww 0x020e057c 0x00020030
49         mww 0x020e0590 0x00003000
50         mww 0x020e0598 0x00003000
51         mww 0x020e058c 0x00000000
52         mww 0x020e059c 0x00003030
53         mww 0x020e05a0 0x00003030
54         mww 0x020e0784 0x00000030
55         mww 0x020e0788 0x00000030
56         mww 0x020e0794 0x00000030
57         mww 0x020e079c 0x00000030
58         mww 0x020e07a0 0x00000030
59         mww 0x020e07a4 0x00000030
60         mww 0x020e07a8 0x00000030
61         mww 0x020e0748 0x00000030
62         mww 0x020e074c 0x00000030
63         mww 0x020e0750 0x00020000
64         mww 0x020e0758 0x00000000
65         mww 0x020e0774 0x00020000
66         mww 0x020e078c 0x00000030
67         mww 0x020e0798 0x000c0000
68         mww 0x021b081c 0x33333333
69         mww 0x021b0820 0x33333333
70         mww 0x021b0824 0x33333333
71         mww 0x021b0828 0x33333333
72         mww 0x021b481c 0x33333333
73         mww 0x021b4820 0x33333333
74         mww 0x021b4824 0x33333333
75         mww 0x021b4828 0x33333333
76         mww 0x021b0018 0x00081740
77         mww 0x021b001c 0x00008000
78         mww 0x021b000c 0x555a7975
79         mww 0x021b0010 0xff538e64
80         mww 0x021b0014 0x01ff00db
81         mww 0x021b002c 0x000026d2
82         mww 0x021b0030 0x005b0e21
83         mww 0x021b0008 0x09444040
84         mww 0x021b0004 0x00025576
85         mww 0x021b0040 0x00000027
86         mww 0x021b0000 0x831a0000
87         mww 0x021b001c 0x04088032
88         mww 0x021b001c 0x0408803a
89         mww 0x021b001c 0x00008033
90         mww 0x021b001c 0x0000803b
91         mww 0x021b001c 0x00428031
92         mww 0x021b001c 0x00428039
93         mww 0x021b001c 0x09408030
94         mww 0x021b001c 0x09408038
95         mww 0x021b001c 0x04008040
96         mww 0x021b001c 0x04008048
97         mww 0x021b0800 0xa1380003
98         mww 0x021b4800 0xa1380003
99         mww 0x021b0020 0x00005800
100         mww 0x021b0818 0x00022227
101         mww 0x021b4818 0x00022227
102         mww 0x021b083c 0x434b0350
103         mww 0x021b0840 0x034c0359
104         mww 0x021b483c 0x434b0350
105         mww 0x021b4840 0x03650348
106         mww 0x021b0848 0x4436383b
107         mww 0x021b4848 0x39393341
108         mww 0x021b0850 0x35373933
109         mww 0x021b4850 0x48254A36
110         mww 0x021b080c 0x001f001f
111         mww 0x021b0810 0x001f001f
112         mww 0x021b480c 0x00440044
113         mww 0x021b4810 0x00440044
114         mww 0x021b08b8 0x00000800
115         mww 0x021b48b8 0x00000800
116         mww 0x021b001c 0x00000000
117         mww 0x021b0404 0x00011006
118         mww 0x020c4068 0x00c03f3f
119         mww 0x020c406c 0x0030fc03
120         mww 0x020c4070 0x0fffc000
121         mww 0x020c4074 0x3ff00000
122         mww 0x020c4078 0x00fff300
123         mww 0x020c407c 0x0f0000c3
124         mww 0x020c4080 0x000003ff
125         mww 0x020e0010 0xf00000cf
126         mww 0x020e0018 0x007f007f
127         mww 0x020e001c 0x007f007f
128 }
129
130 # disable watchdog
131 proc disable_wdog { } {
132         mwh 0x020bc000 0x30
133 }
134
135 # This function applies the initial configuration after a "reset init"
136 # command
137 proc imx6q_sabresd_init { } {
138         disable_wdog
139         apply_dcd
140 }
141
142 # prevent cortex-a code from asserting SRST again
143 $_TARGETNAME.0 configure -event reset-assert { }
144 # hook the init function into the reset-init event
145 $_TARGETNAME.0 configure -event reset-init { imx6q_sabresd_init }
146 # make sure target is halted when gdb attaches
147 $_TARGETNAME.0 configure -event gdb-attach { halt }
148 # set a slow default JTAG clock, can be overridden later
149 adapter_khz 1000