tcl/board: add SPDX tag
[fw/openocd] / tcl / board / imx28evk.cfg
1 # SPDX-License-Identifier: GPL-2.0-or-later
2
3 # The IMX28EVK eval board has a IMX28 chip
4 # Tested on SCH-26241 Rev D board with Olimex ARM-USB-OCD
5 # Date: 201-02-01
6 # Authors: James Robinson & Fabio Estevam
7
8 source [find target/imx28.cfg]
9 $_TARGETNAME configure -event gdb-attach { imx28evk_init }
10 $_TARGETNAME configure -event reset-init { imx28evk_init }
11
12 proc imx28evk_init { } {
13
14         halt
15
16         #****************************
17         # VDDD setting
18         #****************************
19         # set VDDD =1.55V =(0.8v + TRIG x 0.025v), TRIG=0x1e
20         mww 0x80044010 0x0003F503
21         mww 0x80044040 0x0002041E
22
23         #****************************
24         # CLOCK set up
25         #****************************
26         # Power up PLL0 HW_CLKCTRL_PLL0CTRL0
27         mww 0x80040000 0x00020000
28         # Set up fractional dividers for CPU and EMI - HW_CLKCTRL_FRAC0
29         # EMI - first set DIV_EMI to div-by-2 before programming frac divider
30         mww 0x800400F0 0x80000002
31
32
33         # CPU: CPUFRAC=19 480*18/29=454.7MHz, EMI: EMIFRAC=22, (480/2)*18/22=196.4MHz
34         mww 0x800401B0 0x92921613
35         # Clear the bypass bits for CPU and EMI clocks in HW_CLKCTRL_CLKSEQ_CLR
36         mww 0x800401D8 0x00040080
37         # HCLK = 227MHz,HW_CLKCTRL_HBUS DIV =0x2
38         mww 0x80040060 0x00000002
39
40         #****************************
41         # POWER up DCDD_VDDA (DDR2)
42         #****************************
43         # Now set the voltage level to 1.8V HW_POWER_VDDACTRL bits TRC=0xC
44         mww 0x80044050 0x0000270C
45
46         #****************************
47         # DDR2 DCDD_VDDA
48         #****************************
49         # First set up pin muxing and drive strength
50         # Ungate module clock and bring out of reset HW_PINCTRL_CTRL_CLR
51         mww 0x80018008 0xC0000000
52
53         #****************************
54         # EMI PAD setting
55         #****************************
56         # Set up drive strength for EMI pins
57         mww 0x80019B80 0x00030000
58         #IOMUXC_SW_PAD_CTL_GRP_CTLDS
59
60         # Set up pin muxing for EMI, HW_PINCTRL_MUXSEL10, 11, 12, 13
61         mww 0x800181A8 0xFFFFFFFF
62         mww 0x800181B8 0xFFFFFFFF
63         mww 0x800181C8 0xFFFFFFFF
64         mww 0x800181D8 0xFFFFFFFF
65
66         #** Ungate EMI clock in CCM
67         mww 0x800400F0 0x00000002
68
69         #============================================================================
70         # DDR Controller Registers
71         #============================================================================
72         # Manufacturer:    Elpida
73         # Device Part Number:    EDE1116AEBG
74         # Clock Freq.:     200MHz
75         # Density:         1Gb
76         # Chip Selects:    1
77         # Number of Banks: 8
78         # Row address:     13
79         # Column address:  10
80         #============================================================================
81         mww 0x800E0000 0x00000000
82         mww 0x800E0040 0x00000000
83         mww 0x800E0054 0x00000000
84         mww 0x800E0058 0x00000000
85         mww 0x800E005C 0x00000000
86         mww 0x800E0060 0x00000000
87         mww 0x800E0064 0x00000000
88         mww 0x800E0068 0x00010101
89         mww 0x800E006C 0x01010101
90         mww 0x800E0070 0x000f0f01
91         mww 0x800E0074 0x0102020A
92         mww 0x800E007C 0x00010101
93         mww 0x800E0080 0x00000100
94         mww 0x800E0084 0x00000100
95         mww 0x800E0088 0x00000000
96         mww 0x800E008C 0x00000002
97         mww 0x800E0090 0x01010000
98         mww 0x800E0094 0x07080403
99         mww 0x800E0098 0x06005003
100         mww 0x800E009C 0x0A0000C8
101         mww 0x800E00A0 0x02009C40
102         mww 0x800E00A4 0x0002030C
103         mww 0x800E00A8 0x0036B009
104         mww 0x800E00AC 0x031A0612
105         mww 0x800E00B0 0x02030202
106         mww 0x800E00B4 0x00C8001C
107         mww 0x800E00C0 0x00011900
108         mww 0x800E00C4 0xffff0303
109         mww 0x800E00C8 0x00012100
110         mww 0x800E00CC 0xffff0303
111         mww 0x800E00D0 0x00012100
112         mww 0x800E00D4 0xffff0303
113         mww 0x800E00D8 0x00012100
114         mww 0x800E00DC 0xffff0303
115         mww 0x800E00E0 0x00000003
116         mww 0x800E00E8 0x00000000
117         mww 0x800E0108 0x00000612
118         mww 0x800E010C 0x01000f02
119         mww 0x800E0114 0x00000200
120         mww 0x800E0118 0x00020007
121         mww 0x800E011C 0xf4004a27
122         mww 0x800E0120 0xf4004a27
123         mww 0x800E012C 0x07400300
124         mww 0x800E0130 0x07400300
125         mww 0x800E013C 0x00000005
126         mww 0x800E0140 0x00000000
127         mww 0x800E0144 0x00000000
128         mww 0x800E0148 0x01000000
129         mww 0x800E014C 0x01020408
130         mww 0x800E0150 0x08040201
131         mww 0x800E0154 0x000f1133
132         mww 0x800E015C 0x00001f04
133         mww 0x800E0160 0x00001f04
134         mww 0x800E016C 0x00001f04
135         mww 0x800E0170 0x00001f04
136         mww 0x800E0288 0x00010000
137         mww 0x800E028C 0x00030404
138         mww 0x800E0290 0x00000003
139         mww 0x800E02AC 0x01010000
140         mww 0x800E02B0 0x01000000
141         mww 0x800E02B4 0x03030000
142         mww 0x800E02B8 0x00010303
143         mww 0x800E02BC 0x01020202
144         mww 0x800E02C0 0x00000000
145         mww 0x800E02C4 0x02030303
146         mww 0x800E02C8 0x21002103
147         mww 0x800E02CC 0x00061200
148         mww 0x800E02D0 0x06120612
149         mww 0x800E02D4 0x04420442
150         # Mode register 0 for CS1 and CS0, ok to program CS1 even if not used
151         mww 0x800E02D8 0x00000000
152         # Mode register 0 for CS2 and CS3, not supported in this processor
153         mww 0x800E02DC 0x00040004
154         # Mode register 1 for CS1 and CS0, ok to program CS1 even if not used
155         mww 0x800E02E0 0x00000000
156         # Mode register 1 for CS2 and CS3, not supported in this processor
157         mww 0x800E02E4 0x00000000
158         # Mode register 2 for CS1 and CS0, ok to program CS1 even if not used
159         mww 0x800E02E8 0x00000000
160         # Mode register 2 for CS2 and CS3, not supported in this processor
161         mww 0x800E02EC 0x00000000
162         # Mode register 3 for CS1 and CS0, ok to program CS1 even if not used
163         mww 0x800E02F0 0x00000000
164         # Mode register 3 for CS2 and CS3, not supported in this processor
165         mww 0x800E02F4 0xffffffff
166
167         #**  start controller **#
168         mww 0x800E0040 0x00000001
169         # bit[0]: start
170 }