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