xref: /openbmc/u-boot/drivers/ram/aspeed/sdram_phy_ast2600.h (revision dd3a6e11e6c40c7e06e4da84ffccf2362e2b62c5)
1 #define DDR_PHY_TBL_CHG_ADDR            0xaeeddeea
2 #define DDR_PHY_TBL_END                 0xaeededed
3 
4 /**
5  * phyr030[18:16] - Ron PU (PHY side)
6  * phyr030[14:12] - Ron PD (PHY side)
7  *   b'000 : disable
8  *   b'001 : 240 ohm
9  *   b'010 : 120 ohm
10  *   b'011 : 80 ohm
11  *   b'100 : 60 ohm
12  *   b'101 : 48 ohm
13  *   b'110 : 40 ohm
14  *   b'111 : 34 ohm
15  *
16  */
17 #define PHY_RON				((0x7 << 16) | (0x7 << 12))
18 
19 /**
20  * phyr030[10:8] - ODT configuration (PHY side)
21  *   b'000 : ODT disabled
22  *   b'001 : 240 ohm
23  *   b'010 : 120 ohm
24  *   b'011 : 80 ohm
25  *   b'100 : 60 ohm
26  *   b'101 : 48 ohm
27  *   b'110 : 40 ohm (default)
28  *   b'111 : 34 ohm
29  */
30 #if defined(CONFIG_ASPEED_DDR4_PHY_ODT80)
31 #define PHY_ODT			(0x3 << 8)
32 #elif defined(CONFIG_ASPEED_DDR4_PHY_ODT60)
33 #define PHY_ODT			(0x4 << 8)
34 #elif defined(CONFIG_ASPEED_DDR4_PHY_ODT48)
35 #define PHY_ODT			(0x5 << 8)
36 #else
37 #define PHY_ODT			(0x6 << 8)
38 #endif
39 
40 /**
41  * phyr058[10:8] - ODT configuration (DRAM side)
42  *   b'001 : 60 ohm
43  *   b'101 : 48 ohm
44  *   b'011 : 40 ohm (default)
45  */
46 #if defined(CONFIG_ASPEED_DDR4_DRAM_ODT60)
47 #define DRAM_ODT			(0x1 << 8)
48 #elif defined(CONFIG_ASPEED_DDR4_DRAM_ODT48)
49 #define DRAM_ODT			(0x5 << 8)
50 #else
51 #define DRAM_ODT			(0x3 << 8)
52 #endif
53 
54 #if defined(CONFIG_ASPEED_DDR4_800)
55 u32 ast2600_sdramphy_config[165] = {
56 	0x1e6e0100,	// start address
57 	0x00000000,	// phyr000
58 	0x0c002062,	// phyr004
59 	0x1a7a0063,	// phyr008
60 	0x5a7a0063,	// phyr00c
61 	0x1a7a0063,	// phyr010
62 	0x1a7a0063,	// phyr014
63 	0x20000000,	// phyr018
64 	0x20000000,	// phyr01c
65 	0x20000000,	// phyr020
66 	0x20000000,	// phyr024
67 	0x00000008,	// phyr028
68 	0x00000000,	// phyr02c
69 	(PHY_RON | PHY_ODT),	/* phyr030 */
70 	0x00000000,	// phyr034
71 	0x00000000,	// phyr038
72 	0x20000000,	// phyr03c
73 	0x50506000,	// phyr040
74 	0x50505050,	// phyr044
75 	0x00002f07,	// phyr048
76 	0x00003080,	// phyr04c
77 	0x04000000,	// phyr050
78 	0x00000200,	// phyr054
79 	(0x03140001 | DRAM_ODT),	// phyr058
80 	0x04800000,	// phyr05c
81 	0x0800044e,	// phyr060
82 	0x00000000,	// phyr064
83 	0x00180008,	// phyr068
84 	0x00e00400,	// phyr06c
85 	0x00140206,	// phyr070
86 	0x1d4c0000,	// phyr074
87 	0x493e0107,	// phyr078
88 	0x08060404,	// phyr07c
89 	0x90000a00,	// phyr080
90 	0x06420618,	// phyr084
91 	0x00001002,	// phyr088
92 	0x05701016,	// phyr08c
93 	0x10000000,	// phyr090
94 	0xaeeddeea,	// change address
95 	0x1e6e019c,	// new address
96 	0x20202020,	// phyr09c
97 	0x20202020,	// phyr0a0
98 	0x00002020,	// phyr0a4
99 	0x00002020,	// phyr0a8
100 	0x00000001,	// phyr0ac
101 	0xaeeddeea,	// change address
102 	0x1e6e01cc,	// new address
103 	0x01010101,	// phyr0cc
104 	0x01010101,	// phyr0d0
105 	0x80808080,	// phyr0d4
106 	0x80808080,	// phyr0d8
107 	0xaeeddeea,	// change address
108 	0x1e6e0288,	// new address
109 	0x80808080,	// phyr188
110 	0x80808080,	// phyr18c
111 	0x80808080,	// phyr190
112 	0x80808080,	// phyr194
113 	0xaeeddeea,	// change address
114 	0x1e6e02f8,	// new address
115 	0x90909090,	// phyr1f8
116 	0x88888888,	// phyr1fc
117 	0xaeeddeea,	// change address
118 	0x1e6e0300,	// new address
119 	0x00000000,	// phyr200
120 	0xaeeddeea,	// change address
121 	0x1e6e0194,	// new address
122 	0x80118260,	// phyr094
123 	0xaeeddeea,	// change address
124 	0x1e6e019c,	// new address
125 	0x20202020,	// phyr09c
126 	0x20202020,	// phyr0a0
127 	0x00002020,	// phyr0a4
128 	0x80000000,	// phyr0a8
129 	0x00000001,	// phyr0ac
130 	0xaeeddeea,	// change address
131 	0x1e6e0318,	// new address
132 	0x09222719,	// phyr218
133 	0x00aa4403,	// phyr21c
134 	0xaeeddeea,	// change address
135 	0x1e6e0198,	// new address
136 	0x08060000,	// phyr098
137 	0xaeeddeea,	// change address
138 	0x1e6e01b0,	// new address
139 	0x00000000,	// phyr0b0
140 	0x00000000,	// phyr0b4
141 	0x00000000,	// phyr0b8
142 	0x00000000,	// phyr0bc
143 	0x00000000,	// phyr0c0
144 	0x00000000,	// phyr0c4
145 	0x000aff2c,	// phyr0c8
146 	0xaeeddeea,	// change address
147 	0x1e6e01dc,	// new address
148 	0x00080000,	// phyr0dc
149 	0x00000000,	// phyr0e0
150 	0xaa55aa55,	// phyr0e4
151 	0x55aa55aa,	// phyr0e8
152 	0xaaaa5555,	// phyr0ec
153 	0x5555aaaa,	// phyr0f0
154 	0xaa55aa55,	// phyr0f4
155 	0x55aa55aa,	// phyr0f8
156 	0xaaaa5555,	// phyr0fc
157 	0x5555aaaa,	// phyr100
158 	0xaa55aa55,	// phyr104
159 	0x55aa55aa,	// phyr108
160 	0xaaaa5555,	// phyr10c
161 	0x5555aaaa,	// phyr110
162 	0xaa55aa55,	// phyr114
163 	0x55aa55aa,	// phyr118
164 	0xaaaa5555,	// phyr11c
165 	0x5555aaaa,	// phyr120
166 	0x20202020,	// phyr124
167 	0x20202020,	// phyr128
168 	0x20202020,	// phyr12c
169 	0x20202020,	// phyr130
170 	0x20202020,	// phyr134
171 	0x20202020,	// phyr138
172 	0x20202020,	// phyr13c
173 	0x20202020,	// phyr140
174 	0x20202020,	// phyr144
175 	0x20202020,	// phyr148
176 	0x20202020,	// phyr14c
177 	0x20202020,	// phyr150
178 	0x20202020,	// phyr154
179 	0x20202020,	// phyr158
180 	0x20202020,	// phyr15c
181 	0x20202020,	// phyr160
182 	0x20202020,	// phyr164
183 	0x20202020,	// phyr168
184 	0x20202020,	// phyr16c
185 	0x20202020,	// phyr170
186 	0xaeeddeea,	// change address
187 	0x1e6e0298,	// new address
188 	0x20200800,	// phyr198
189 	0x20202020,	// phyr19c
190 	0x20202020,	// phyr1a0
191 	0x20202020,	// phyr1a4
192 	0x20202020,	// phyr1a8
193 	0x20202020,	// phyr1ac
194 	0x20202020,	// phyr1b0
195 	0x20202020,	// phyr1b4
196 	0x20202020,	// phyr1b8
197 	0x20202020,	// phyr1bc
198 	0x20202020,	// phyr1c0
199 	0x20202020,	// phyr1c4
200 	0x20202020,	// phyr1c8
201 	0x20202020,	// phyr1cc
202 	0x20202020,	// phyr1d0
203 	0x20202020,	// phyr1d4
204 	0x20202020,	// phyr1d8
205 	0x20202020,	// phyr1dc
206 	0x20202020,	// phyr1e0
207 	0x20202020,	// phyr1e4
208 	0x00002020,	// phyr1e8
209 	0xaeeddeea,	// change address
210 	0x1e6e0304,	// new address
211 	0x00000800,	// phyr204
212 	0xaeeddeea,	// change address
213 	0x1e6e027c,	// new address
214 	0x4e400000,	// phyr17c
215 	0x59595959,	// phyr180
216 	0x40404040,	// phyr184
217 	0xaeeddeea,	// change address
218 	0x1e6e02f4,	// new address
219 	0x00000059,	// phyr1f4
220 	0xaeededed,	// end
221 };
222 #else
223 u32 ast2600_sdramphy_config[165] = {
224 	0x1e6e0100,	// start address
225 	0x00000000,	// phyr000
226 	0x0c002062,	// phyr004
227 	0x1a7a0063,	// phyr008
228 	0x5a7a0063,	// phyr00c
229 	0x1a7a0063,	// phyr010
230 	0x1a7a0063,	// phyr014
231 	0x20000000,	// phyr018
232 	0x20000000,	// phyr01c
233 	0x20000000,	// phyr020
234 	0x20000000,	// phyr024
235 	0x00000008,	// phyr028
236 	0x00000000,	// phyr02c
237 	(PHY_RON | PHY_ODT),	/* phyr030 */
238 	0x00000000,	// phyr034
239 	0x00000000,	// phyr038
240 	0x20000000,	// phyr03c
241 	0x50506000,	// phyr040
242 	0x50505050,	// phyr044
243 	0x00002f07,	// phyr048
244 	0x00003080,	// phyr04c
245 	0x04000000,	// phyr050
246 	0x00000200,	// phyr054
247 	(0x03140001 | DRAM_ODT),	// phyr058
248 	0x04800000,	// phyr05c
249 	0x0800044e,	// phyr060
250 	0x00000000,	// phyr064
251 	0x00180008,	// phyr068
252 	0x00e00400,	// phyr06c
253 	0x00140206,	// phyr070
254 	0x1d4c0000,	// phyr074
255 	0x493e0107,	// phyr078
256 	0x08060404,	// phyr07c
257 	0x90000a00,	// phyr080
258 	0x06420c30,	// phyr084
259 	0x00001002,	// phyr088
260 	0x05701016,	// phyr08c
261 	0x10000000,	// phyr090
262 	0xaeeddeea,	// change address
263 	0x1e6e019c,	// new address
264 	0x20202020,	// phyr09c
265 	0x20202020,	// phyr0a0
266 	0x00002020,	// phyr0a4
267 	0x00002020,	// phyr0a8
268 	0x00000001,	// phyr0ac
269 	0xaeeddeea,	// change address
270 	0x1e6e01cc,	// new address
271 	0x01010101,	// phyr0cc
272 	0x01010101,	// phyr0d0
273 	0x80808080,	// phyr0d4
274 	0x80808080,	// phyr0d8
275 	0xaeeddeea,	// change address
276 	0x1e6e0288,	// new address
277 	0x80808080,	// phyr188
278 	0x80808080,	// phyr18c
279 	0x80808080,	// phyr190
280 	0x80808080,	// phyr194
281 	0xaeeddeea,	// change address
282 	0x1e6e02f8,	// new address
283 	0x90909090,	// phyr1f8
284 	0x88888888,	// phyr1fc
285 	0xaeeddeea,	// change address
286 	0x1e6e0300,	// new address
287 	0x00000000,	// phyr200
288 	0xaeeddeea,	// change address
289 	0x1e6e0194,	// new address
290 	0x801112e0,	// phyr094 - bit12=1,15=0,- write window is ok
291 	0xaeeddeea,	// change address
292 	0x1e6e019c,	// new address
293 	0x20202020,	// phyr09c
294 	0x20202020,	// phyr0a0
295 	0x00002020,	// phyr0a4
296 	0x80000000,	// phyr0a8
297 	0x00000001,	// phyr0ac
298 	0xaeeddeea,	// change address
299 	0x1e6e0318,	// new address
300 	0x09222719,	// phyr218
301 	0x00aa4403,	// phyr21c
302 	0xaeeddeea,	// change address
303 	0x1e6e0198,	// new address
304 	0x08060000,	// phyr098
305 	0xaeeddeea,	// change address
306 	0x1e6e01b0,	// new address
307 	0x00000000,	// phyr0b0
308 	0x00000000,	// phyr0b4
309 	0x00000000,	// phyr0b8
310 	0x00000000,	// phyr0bc
311 	0x00000000,	// phyr0c0 - ori
312 	0x00000000,	// phyr0c4
313 	0x000aff2c,	// phyr0c8
314 	0xaeeddeea,	// change address
315 	0x1e6e01dc,	// new address
316 	0x00080000,	// phyr0dc
317 	0x00000000,	// phyr0e0
318 	0xaa55aa55,	// phyr0e4
319 	0x55aa55aa,	// phyr0e8
320 	0xaaaa5555,	// phyr0ec
321 	0x5555aaaa,	// phyr0f0
322 	0xaa55aa55,	// phyr0f4
323 	0x55aa55aa,	// phyr0f8
324 	0xaaaa5555,	// phyr0fc
325 	0x5555aaaa,	// phyr100
326 	0xaa55aa55,	// phyr104
327 	0x55aa55aa,	// phyr108
328 	0xaaaa5555,	// phyr10c
329 	0x5555aaaa,	// phyr110
330 	0xaa55aa55,	// phyr114
331 	0x55aa55aa,	// phyr118
332 	0xaaaa5555,	// phyr11c
333 	0x5555aaaa,	// phyr120
334 	0x20202020,	// phyr124
335 	0x20202020,	// phyr128
336 	0x20202020,	// phyr12c
337 	0x20202020,	// phyr130
338 	0x20202020,	// phyr134
339 	0x20202020,	// phyr138
340 	0x20202020,	// phyr13c
341 	0x20202020,	// phyr140
342 	0x20202020,	// phyr144
343 	0x20202020,	// phyr148
344 	0x20202020,	// phyr14c
345 	0x20202020,	// phyr150
346 	0x20202020,	// phyr154
347 	0x20202020,	// phyr158
348 	0x20202020,	// phyr15c
349 	0x20202020,	// phyr160
350 	0x20202020,	// phyr164
351 	0x20202020,	// phyr168
352 	0x20202020,	// phyr16c
353 	0x20202020,	// phyr170
354 	0xaeeddeea,	// change address
355 	0x1e6e0298,	// new address
356 	0x20200800,	// phyr198
357 	0x20202020,	// phyr19c
358 	0x20202020,	// phyr1a0
359 	0x20202020,	// phyr1a4
360 	0x20202020,	// phyr1a8
361 	0x20202020,	// phyr1ac
362 	0x20202020,	// phyr1b0
363 	0x20202020,	// phyr1b4
364 	0x20202020,	// phyr1b8
365 	0x20202020,	// phyr1bc
366 	0x20202020,	// phyr1c0
367 	0x20202020,	// phyr1c4
368 	0x20202020,	// phyr1c8
369 	0x20202020,	// phyr1cc
370 	0x20202020,	// phyr1d0
371 	0x20202020,	// phyr1d4
372 	0x20202020,	// phyr1d8
373 	0x20202020,	// phyr1dc
374 	0x20202020,	// phyr1e0
375 	0x20202020,	// phyr1e4
376 	0x00002020,	// phyr1e8
377 	0xaeeddeea,	// change address
378 	0x1e6e0304,	// new address
379 	0x00000800,	// phyr204
380 	0xaeeddeea,	// change address
381 	0x1e6e027c,	// new address
382 	0x4e400000,	// phyr17c
383 	0x59595959,	// phyr180
384 	0x40404040,	// phyr184
385 	0xaeeddeea,	// change address
386 	0x1e6e02f4,	// new address
387 	0x00000059,	// phyr1f4
388 	0xaeededed,	// end
389 };
390 #endif