blob: 5d1b078c9b483c1e67805864e068a35b5b662bde [file] [log] [blame]
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001/*
Chiaki Fujii59263ee2019-05-17 10:45:02 +09002 * Copyright (c) 2015-2019, Renesas Electronics Corporation. All rights reserved.
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Chiaki Fujii59263ee2019-05-17 10:45:02 +09007#define BOARDNUM 22
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02008#define BOARD_JUDGE_AUTO
9
Marek Vasut6c245a52018-12-12 18:06:39 +010010#ifdef BOARD_JUDGE_AUTO
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020011static uint32_t _board_judge(void);
12
13static uint32_t boardcnf_get_brd_type(void)
14{
15 return _board_judge();
16}
Marek Vasut6c245a52018-12-12 18:06:39 +010017#else
18static uint32_t boardcnf_get_brd_type(void)
19{
20 return (1);
21}
22#endif
23
24#define DDR_FAST_INIT
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020025
26struct _boardcnf_ch {
27 uint8_t ddr_density[CS_CNT];
Marek Vasut6c245a52018-12-12 18:06:39 +010028 uint64_t ca_swap;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020029 uint16_t dqs_swap;
30 uint32_t dq_swap[SLICE_CNT];
31 uint8_t dm_swap[SLICE_CNT];
32 uint16_t wdqlvl_patt[16];
Marek Vasut6c245a52018-12-12 18:06:39 +010033 int8_t cacs_adj[16];
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020034 int8_t dm_adj_w[SLICE_CNT];
35 int8_t dq_adj_w[SLICE_CNT * 8];
36 int8_t dm_adj_r[SLICE_CNT];
37 int8_t dq_adj_r[SLICE_CNT * 8];
38};
39
40struct _boardcnf {
41 uint8_t phyvalid;
42 uint8_t dbi_en;
43 uint16_t cacs_dly;
44 int16_t cacs_dly_adj;
45 uint16_t dqdm_dly_w;
46 uint16_t dqdm_dly_r;
47 struct _boardcnf_ch ch[DRAM_CH_CNT];
48};
49
50#define WDQLVL_PAT {\
51 0x00AA,\
52 0x0055,\
53 0x00AA,\
54 0x0155,\
55 0x01CC,\
56 0x0133,\
57 0x00CC,\
58 0x0033,\
59 0x00F0,\
60 0x010F,\
61 0x01F0,\
62 0x010F,\
63 0x00F0,\
64 0x00F0,\
65 0x000F,\
66 0x010F}
67
68static const struct _boardcnf boardcnfs[BOARDNUM] = {
69 {
70/* boardcnf[0] RENESAS SALVATOR-X board with M3-W/SIP */
71 .phyvalid = 0x03,
72 .dbi_en = 0x01,
73 .cacs_dly = 0x02c0,
74 .cacs_dly_adj = 0,
75 .dqdm_dly_w = 0x0300,
76 .dqdm_dly_r = 0x00a0,
77 .ch = {
78 {
79 {0x02, 0x02},
80 0x00543210U,
81 0x3201U,
82 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
83 {0x08, 0x08, 0x08, 0x08},
84 WDQLVL_PAT,
85 {0, 0, 0, 0, 0, 0, 0, 0,
86 0, 0},
87 {0, 0, 0, 0},
88 {0, 0, 0, 0, 0, 0, 0, 0,
89 0, 0, 0, 0, 0, 0, 0, 0,
90 0, 0, 0, 0, 0, 0, 0, 0,
91 0, 0, 0, 0, 0, 0, 0, 0},
92 {0, 0, 0, 0},
93 {0, 0, 0, 0, 0, 0, 0, 0,
94 0, 0, 0, 0, 0, 0, 0, 0,
95 0, 0, 0, 0, 0, 0, 0, 0,
96 0, 0, 0, 0, 0, 0, 0, 0}
97 },
98
99 {
100 {0x02, 0x02},
101 0x00543210,
102 0x2310,
103 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
104 {0x08, 0x08, 0x08, 0x08},
105 WDQLVL_PAT,
106 {0, 0, 0, 0, 0, 0, 0, 0,
107 0, 0},
108 {0, 0, 0, 0},
109 {0, 0, 0, 0, 0, 0, 0, 0,
110 0, 0, 0, 0, 0, 0, 0, 0,
111 0, 0, 0, 0, 0, 0, 0, 0,
112 0, 0, 0, 0, 0, 0, 0, 0},
113 {0, 0, 0, 0},
114 {0, 0, 0, 0, 0, 0, 0, 0,
115 0, 0, 0, 0, 0, 0, 0, 0,
116 0, 0, 0, 0, 0, 0, 0, 0,
117 0, 0, 0, 0, 0, 0, 0, 0}
118 }
119 }
120 },
121/* boardcnf[1] RENESAS KRIEK board with M3-W/SoC */
122 {
123 0x03,
124 0x01,
125 0x2c0,
126 0,
127 0x300,
128 0x0a0,
129 {
130 {
131 {0x02, 0x02},
132 0x00345201,
133 0x3201,
134 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
135 {0x08, 0x08, 0x08, 0x08},
136 WDQLVL_PAT,
137 {0, 0, 0, 0, 0, 0, 0, 0,
138 0, 0},
139 {0, 0, 0, 0},
140 {0, 0, 0, 0, 0, 0, 0, 0,
141 0, 0, 0, 0, 0, 0, 0, 0,
142 0, 0, 0, 0, 0, 0, 0, 0,
143 0, 0, 0, 0, 0, 0, 0, 0},
144 {0, 0, 0, 0},
145 {0, 0, 0, 0, 0, 0, 0, 0,
146 0, 0, 0, 0, 0, 0, 0, 0,
147 0, 0, 0, 0, 0, 0, 0, 0,
148 0, 0, 0, 0, 0, 0, 0, 0}
149 },
150 {
151 {0x02, 0x02},
152 0x00302154,
153 0x2310,
154 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
155 {0x08, 0x08, 0x08, 0x08},
156 WDQLVL_PAT,
157 {0, 0, 0, 0, 0, 0, 0, 0,
158 0, 0},
159 {0, 0, 0, 0},
160 {0, 0, 0, 0, 0, 0, 0, 0,
161 0, 0, 0, 0, 0, 0, 0, 0,
162 0, 0, 0, 0, 0, 0, 0, 0,
163 0, 0, 0, 0, 0, 0, 0, 0},
164 {0, 0, 0, 0},
165 {0, 0, 0, 0, 0, 0, 0, 0,
166 0, 0, 0, 0, 0, 0, 0, 0,
167 0, 0, 0, 0, 0, 0, 0, 0,
168 0, 0, 0, 0, 0, 0, 0, 0}
169 }
170 }
171 },
172/* boardcnf[2] RENESAS SALVATOR-X board with H3 Ver.1.x/SIP(8Gbit 1rank) */
173 {
174 0x0f,
175 0x00,
176 0x300,
177 -320,
178 0x300,
179 0x0a0,
180 {
181 {
182 {0x02, 0xff},
183 0x00543210,
184 0x3210,
185 {0x20741365, 0x34256107, 0x57460321, 0x70614532},
186 {0x08, 0x08, 0x08, 0x08},
187 WDQLVL_PAT,
188 {0, 0, 0, 0, 0, 0, 0, 0,
189 0, 0},
190 {0, 0, 0, 0},
191 {0, 0, 0, 0, 0, 0, 0, 0,
192 0, 0, 0, 0, 0, 0, 0, 0,
193 0, 0, 0, 0, 0, 0, 0, 0,
194 0, 0, 0, 0, 0, 0, 0, 0},
195 {0, 0, 0, 0},
196 {0, 0, 0, 0, 0, 0, 0, 0,
197 0, 0, 0, 0, 0, 0, 0, 0,
198 0, 0, 0, 0, 0, 0, 0, 0,
199 0, 0, 0, 0, 0, 0, 0, 0}
200 },
201 {
202 {0x02, 0xff},
203 0x00543210,
204 0x3102,
205 {0x23547610, 0x34526107, 0x67452310, 0x32106754},
206 {0x08, 0x08, 0x08, 0x08},
207 WDQLVL_PAT,
208 {0, 0, 0, 0, 0, 0, 0, 0,
209 0, 0},
210 {0, 0, 0, 0},
211 {0, 0, 0, 0, 0, 0, 0, 0,
212 0, 0, 0, 0, 0, 0, 0, 0,
213 0, 0, 0, 0, 0, 0, 0, 0,
214 0, 0, 0, 0, 0, 0, 0, 0},
215 {0, 0, 0, 0},
216 {0, 0, 0, 0, 0, 0, 0, 0,
217 0, 0, 0, 0, 0, 0, 0, 0,
218 0, 0, 0, 0, 0, 0, 0, 0,
219 0, 0, 0, 0, 0, 0, 0, 0}
220 },
221 {
222 {0x02, 0xff},
223 0x00543210,
224 0x0213,
225 {0x30216754, 0x67453210, 0x70165243, 0x07162345},
226 {0x08, 0x08, 0x08, 0x08},
227 WDQLVL_PAT,
228 {0, 0, 0, 0, 0, 0, 0, 0,
229 0, 0},
230 {0, 0, 0, 0},
231 {0, 0, 0, 0, 0, 0, 0, 0,
232 0, 0, 0, 0, 0, 0, 0, 0,
233 0, 0, 0, 0, 0, 0, 0, 0,
234 0, 0, 0, 0, 0, 0, 0, 0},
235 {0, 0, 0, 0},
236 {0, 0, 0, 0, 0, 0, 0, 0,
237 0, 0, 0, 0, 0, 0, 0, 0,
238 0, 0, 0, 0, 0, 0, 0, 0,
239 0, 0, 0, 0, 0, 0, 0, 0}
240 },
241 {
242 {0x02, 0xff},
243 0x00543210,
244 0x0213,
245 {0x01327654, 0x70615432, 0x54760123, 0x07162345},
246 {0x08, 0x08, 0x08, 0x08},
247 WDQLVL_PAT,
248 {0, 0, 0, 0, 0, 0, 0, 0,
249 0, 0},
250 {0, 0, 0, 0},
251 {0, 0, 0, 0, 0, 0, 0, 0,
252 0, 0, 0, 0, 0, 0, 0, 0,
253 0, 0, 0, 0, 0, 0, 0, 0,
254 0, 0, 0, 0, 0, 0, 0, 0},
255 {0, 0, 0, 0},
256 {0, 0, 0, 0, 0, 0, 0, 0,
257 0, 0, 0, 0, 0, 0, 0, 0,
258 0, 0, 0, 0, 0, 0, 0, 0,
259 0, 0, 0, 0, 0, 0, 0, 0}
260 }
261 }
262 },
263/* boardcnf[3] RENESAS Starter Kit board with M3-W/SIP(8Gbit 1rank) */
264 {
265 0x03,
266 0x01,
267 0x02c0,
268 0,
269 0x0300,
270 0x00a0,
271 {
272 {
273 {0x02, 0xFF},
274 0x00543210U,
275 0x3201,
276 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
277 {0x08, 0x08, 0x08, 0x08},
278 WDQLVL_PAT,
279 {0, 0, 0, 0, 0, 0, 0, 0,
280 0, 0},
281 {0, 0, 0, 0},
282 {0, 0, 0, 0, 0, 0, 0, 0,
283 0, 0, 0, 0, 0, 0, 0, 0,
284 0, 0, 0, 0, 0, 0, 0, 0,
285 0, 0, 0, 0, 0, 0, 0, 0},
286 {0, 0, 0, 0},
287 {0, 0, 0, 0, 0, 0, 0, 0,
288 0, 0, 0, 0, 0, 0, 0, 0,
289 0, 0, 0, 0, 0, 0, 0, 0,
290 0, 0, 0, 0, 0, 0, 0, 0}
291 },
292 {
293 {0x02, 0xFF},
294 0x00543210,
295 0x2310,
296 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
297 {0x08, 0x08, 0x08, 0x08},
298 WDQLVL_PAT,
299 {0, 0, 0, 0, 0, 0, 0, 0,
300 0, 0},
301 {0, 0, 0, 0},
302 {0, 0, 0, 0, 0, 0, 0, 0,
303 0, 0, 0, 0, 0, 0, 0, 0,
304 0, 0, 0, 0, 0, 0, 0, 0,
305 0, 0, 0, 0, 0, 0, 0, 0},
306 {0, 0, 0, 0},
307 {0, 0, 0, 0, 0, 0, 0, 0,
308 0, 0, 0, 0, 0, 0, 0, 0,
309 0, 0, 0, 0, 0, 0, 0, 0,
310 0, 0, 0, 0, 0, 0, 0, 0}
311 }
312 }
313 },
314/* boardcnf[4] RENESAS SALVATOR-M(1rank) board with H3 Ver.1.x/SoC */
315 {
316 0x0f,
317 0x00,
318 0x2c0,
319 -320,
320 0x300,
321 0x0a0,
322 {
323 {
324 {0x02, 0xff},
325 0x00315024,
326 0x3120,
327 {0x30671254, 0x26541037, 0x17054623, 0x12307645},
328 {0x08, 0x08, 0x08, 0x08},
329 WDQLVL_PAT,
330 {0, 0, 0, 0, 0, 0, 0, 0,
331 0, 0},
332 {0, 0, 0, 0},
333 {0, 0, 0, 0, 0, 0, 0, 0,
334 0, 0, 0, 0, 0, 0, 0, 0,
335 0, 0, 0, 0, 0, 0, 0, 0,
336 0, 0, 0, 0, 0, 0, 0, 0},
337 {0, 0, 0, 0},
338 {0, 0, 0, 0, 0, 0, 0, 0,
339 0, 0, 0, 0, 0, 0, 0, 0,
340 0, 0, 0, 0, 0, 0, 0, 0,
341 0, 0, 0, 0, 0, 0, 0, 0}
342 },
343 {
344 {0x02, 0xff},
345 0x00025143,
346 0x3210,
347 {0x70613542, 0x16245307, 0x30712645, 0x21706354},
348 {0x08, 0x08, 0x08, 0x08},
349 WDQLVL_PAT,
350 {0, 0, 0, 0, 0, 0, 0, 0,
351 0, 0},
352 {0, 0, 0, 0},
353 {0, 0, 0, 0, 0, 0, 0, 0,
354 0, 0, 0, 0, 0, 0, 0, 0,
355 0, 0, 0, 0, 0, 0, 0, 0,
356 0, 0, 0, 0, 0, 0, 0, 0},
357 {0, 0, 0, 0},
358 {0, 0, 0, 0, 0, 0, 0, 0,
359 0, 0, 0, 0, 0, 0, 0, 0,
360 0, 0, 0, 0, 0, 0, 0, 0,
361 0, 0, 0, 0, 0, 0, 0, 0}
362 },
363 {
364 {0x02, 0xff},
365 0x00523104,
366 0x2301,
367 {0x70613542, 0x16245307, 0x30712645, 0x21706354},
368 {0x08, 0x08, 0x08, 0x08},
369 WDQLVL_PAT,
370 {0, 0, 0, 0, 0, 0, 0, 0,
371 0, 0},
372 {0, 0, 0, 0},
373 {0, 0, 0, 0, 0, 0, 0, 0,
374 0, 0, 0, 0, 0, 0, 0, 0,
375 0, 0, 0, 0, 0, 0, 0, 0,
376 0, 0, 0, 0, 0, 0, 0, 0},
377 {0, 0, 0, 0},
378 {0, 0, 0, 0, 0, 0, 0, 0,
379 0, 0, 0, 0, 0, 0, 0, 0,
380 0, 0, 0, 0, 0, 0, 0, 0,
381 0, 0, 0, 0, 0, 0, 0, 0}
382 },
383 {
384 {0x02, 0xff},
385 0x00153402,
386 0x2031,
387 {0x30671254, 0x26541037, 0x17054623, 0x12307645},
388 {0x08, 0x08, 0x08, 0x08},
389 WDQLVL_PAT,
390 {0, 0, 0, 0, 0, 0, 0, 0,
391 0, 0},
392 {0, 0, 0, 0},
393 {0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 0, 0, 0, 0, 0, 0,
395 0, 0, 0, 0, 0, 0, 0, 0,
396 0, 0, 0, 0, 0, 0, 0, 0},
397 {0, 0, 0, 0},
398 {0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 0,
401 0, 0, 0, 0, 0, 0, 0, 0}
402 }
403 }
404 },
405/* boardcnf[5] RENESAS KRIEK-1rank board with M3-W/SoC */
406 {
407 0x03,
408 0x01,
409 0x2c0,
410 0,
411 0x300,
412 0x0a0,
413 {
414 {
415 {0x02, 0xff},
416 0x00345201,
417 0x3201,
418 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
419 {0x08, 0x08, 0x08, 0x08},
420 WDQLVL_PAT,
421 {0, 0, 0, 0, 0, 0, 0, 0,
422 0, 0},
423 {0, 0, 0, 0},
424 {0, 0, 0, 0, 0, 0, 0, 0,
425 0, 0, 0, 0, 0, 0, 0, 0,
426 0, 0, 0, 0, 0, 0, 0, 0,
427 0, 0, 0, 0, 0, 0, 0, 0},
428 {0, 0, 0, 0},
429 {0, 0, 0, 0, 0, 0, 0, 0,
430 0, 0, 0, 0, 0, 0, 0, 0,
431 0, 0, 0, 0, 0, 0, 0, 0,
432 0, 0, 0, 0, 0, 0, 0, 0}
433 },
434 {
435 {0x02, 0xff},
436 0x00302154,
437 0x2310,
438 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
439 {0x08, 0x08, 0x08, 0x08},
440 WDQLVL_PAT,
441 {0, 0, 0, 0, 0, 0, 0, 0,
442 0, 0},
443 {0, 0, 0, 0},
444 {0, 0, 0, 0, 0, 0, 0, 0,
445 0, 0, 0, 0, 0, 0, 0, 0,
446 0, 0, 0, 0, 0, 0, 0, 0,
447 0, 0, 0, 0, 0, 0, 0, 0},
448 {0, 0, 0, 0},
449 {0, 0, 0, 0, 0, 0, 0, 0,
450 0, 0, 0, 0, 0, 0, 0, 0,
451 0, 0, 0, 0, 0, 0, 0, 0,
452 0, 0, 0, 0, 0, 0, 0, 0}
453 }
454 }
455 },
456/* boardcnf[6] RENESAS SALVATOR-X board with H3 Ver.1.x/SIP(8Gbit 2rank) */
457 {
458 0x0f,
459 0x00,
460 0x300,
461 -320,
462 0x300,
463 0x0a0,
464 {
465 {
466 {0x02, 0x02},
467 0x00543210,
468 0x3210,
469 {0x20741365, 0x34256107, 0x57460321, 0x70614532},
470 {0x08, 0x08, 0x08, 0x08},
471 WDQLVL_PAT,
472 {0, 0, 0, 0, 0, 0, 0, 0,
473 0, 0},
474 {0, 0, 0, 0},
475 {0, 0, 0, 0, 0, 0, 0, 0,
476 0, 0, 0, 0, 0, 0, 0, 0,
477 0, 0, 0, 0, 0, 0, 0, 0,
478 0, 0, 0, 0, 0, 0, 0, 0},
479 {0, 0, 0, 0},
480 {0, 0, 0, 0, 0, 0, 0, 0,
481 0, 0, 0, 0, 0, 0, 0, 0,
482 0, 0, 0, 0, 0, 0, 0, 0,
483 0, 0, 0, 0, 0, 0, 0, 0}
484 },
485 {
486 {0x02, 0x02},
487 0x00543210,
488 0x3102,
489 {0x23547610, 0x34526107, 0x67452310, 0x32106754},
490 {0x08, 0x08, 0x08, 0x08},
491 WDQLVL_PAT,
492 {0, 0, 0, 0, 0, 0, 0, 0,
493 0, 0},
494 {0, 0, 0, 0},
495 {0, 0, 0, 0, 0, 0, 0, 0,
496 0, 0, 0, 0, 0, 0, 0, 0,
497 0, 0, 0, 0, 0, 0, 0, 0,
498 0, 0, 0, 0, 0, 0, 0, 0},
499 {0, 0, 0, 0},
500 {0, 0, 0, 0, 0, 0, 0, 0,
501 0, 0, 0, 0, 0, 0, 0, 0,
502 0, 0, 0, 0, 0, 0, 0, 0,
503 0, 0, 0, 0, 0, 0, 0, 0}
504 },
505 {
506 {0x02, 0x02},
507 0x00543210,
508 0x0213,
509 {0x30216754, 0x67453210, 0x70165243, 0x07162345},
510 {0x08, 0x08, 0x08, 0x08},
511 WDQLVL_PAT,
512 {0, 0, 0, 0, 0, 0, 0, 0,
513 0, 0},
514 {0, 0, 0, 0},
515 {0, 0, 0, 0, 0, 0, 0, 0,
516 0, 0, 0, 0, 0, 0, 0, 0,
517 0, 0, 0, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 0, 0, 0},
519 {0, 0, 0, 0},
520 {0, 0, 0, 0, 0, 0, 0, 0,
521 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 0,
523 0, 0, 0, 0, 0, 0, 0, 0}
524 },
525 {
526 {0x02, 0x02},
527 0x00543210,
528 0x0213,
529 {0x01327654, 0x70615432, 0x54760123, 0x07162345},
530 {0x08, 0x08, 0x08, 0x08},
531 WDQLVL_PAT,
532 {0, 0, 0, 0, 0, 0, 0, 0,
533 0, 0},
534 {0, 0, 0, 0},
535 {0, 0, 0, 0, 0, 0, 0, 0,
536 0, 0, 0, 0, 0, 0, 0, 0,
537 0, 0, 0, 0, 0, 0, 0, 0,
538 0, 0, 0, 0, 0, 0, 0, 0},
539 {0, 0, 0, 0},
540 {0, 0, 0, 0, 0, 0, 0, 0,
541 0, 0, 0, 0, 0, 0, 0, 0,
542 0, 0, 0, 0, 0, 0, 0, 0,
543 0, 0, 0, 0, 0, 0, 0, 0}
544 }
545 }
546 },
547/* boardcnf[7] RENESAS SALVATOR-X board with H3 Ver.2.0 or later/SIP(8Gbit 1rank) */
548 {
549 0x0f,
550 0x01,
551 0x300,
552 0,
553 0x300,
554 0x0a0,
555 {
556 {
557 {0x02, 0xff},
558 0x00543210,
559 0x2310,
560 {0x70631425, 0x34527016, 0x43527610, 0x32104567},
561 {0x08, 0x08, 0x08, 0x08},
562 WDQLVL_PAT,
563 {0, 0, 0, 0, 0, 0, 0, 0,
564 0, 0},
565 {0, 0, 0, 0},
566 {0, 0, 0, 0, 0, 0, 0, 0,
567 0, 0, 0, 0, 0, 0, 0, 0,
568 0, 0, 0, 0, 0, 0, 0, 0,
569 0, 0, 0, 0, 0, 0, 0, 0},
570 {0, 0, 0, 0},
571 {0, 0, 0, 0, 0, 0, 0, 0,
572 0, 0, 0, 0, 0, 0, 0, 0,
573 0, 0, 0, 0, 0, 0, 0, 0,
574 0, 0, 0, 0, 0, 0, 0, 0}
575 },
576 {
577 {0x02, 0xff},
578 0x00105432,
579 0x3210,
580 {0x43256107, 0x07162354, 0x10234567, 0x01235467},
581 {0x08, 0x08, 0x08, 0x08},
582 WDQLVL_PAT,
583 {0, 0, 0, 0, 0, 0, 0, 0,
584 0, 0},
585 {0, 0, 0, 0},
586 {0, 0, 0, 0, 0, 0, 0, 0,
587 0, 0, 0, 0, 0, 0, 0, 0,
588 0, 0, 0, 0, 0, 0, 0, 0,
589 0, 0, 0, 0, 0, 0, 0, 0},
590 {0, 0, 0, 0},
591 {0, 0, 0, 0, 0, 0, 0, 0,
592 0, 0, 0, 0, 0, 0, 0, 0,
593 0, 0, 0, 0, 0, 0, 0, 0,
594 0, 0, 0, 0, 0, 0, 0, 0}
595 },
596 {
597 {0x02, 0xff},
598 0x00543210,
599 0x2301,
600 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
601 {0x08, 0x08, 0x08, 0x08},
602 WDQLVL_PAT,
603 {0, 0, 0, 0, 0, 0, 0, 0,
604 0, 0},
605 {0, 0, 0, 0},
606 {0, 0, 0, 0, 0, 0, 0, 0,
607 0, 0, 0, 0, 0, 0, 0, 0,
608 0, 0, 0, 0, 0, 0, 0, 0,
609 0, 0, 0, 0, 0, 0, 0, 0},
610 {0, 0, 0, 0},
611 {0, 0, 0, 0, 0, 0, 0, 0,
612 0, 0, 0, 0, 0, 0, 0, 0,
613 0, 0, 0, 0, 0, 0, 0, 0,
614 0, 0, 0, 0, 0, 0, 0, 0}
615 },
616 {
617 {0x02, 0xff},
618 0x00543210,
619 0x2301,
620 {0x12034765, 0x23105467, 0x23017645, 0x32106745},
621 {0x08, 0x08, 0x08, 0x08},
622 WDQLVL_PAT,
623 {0, 0, 0, 0, 0, 0, 0, 0,
624 0, 0},
625 {0, 0, 0, 0},
626 {0, 0, 0, 0, 0, 0, 0, 0,
627 0, 0, 0, 0, 0, 0, 0, 0,
628 0, 0, 0, 0, 0, 0, 0, 0,
629 0, 0, 0, 0, 0, 0, 0, 0},
630 {0, 0, 0, 0},
631 {0, 0, 0, 0, 0, 0, 0, 0,
632 0, 0, 0, 0, 0, 0, 0, 0,
633 0, 0, 0, 0, 0, 0, 0, 0,
634 0, 0, 0, 0, 0, 0, 0, 0}
635 }
636 }
637 },
638/* boardcnf[8] RENESAS SALVATOR-X board with H3 Ver.2.0 or later/SIP(8Gbit 2rank) */
639 {
640#if RCAR_DRAM_CHANNEL == 5
641 0x05,
642#else
643 0x0f,
644#endif
645 0x01,
646 0x300,
647 0,
648 0x300,
649 0x0a0,
650 {
651 {
652 {0x02, 0x02},
653 0x00543210,
654 0x2310,
655 {0x70631425, 0x34527016, 0x43527610, 0x32104567},
656 {0x08, 0x08, 0x08, 0x08},
657 WDQLVL_PAT,
658 {0, 0, 0, 0, 0, 0, 0, 0,
659 0, 0},
660 {0, 0, 0, 0},
661 {0, 0, 0, 0, 0, 0, 0, 0,
662 0, 0, 0, 0, 0, 0, 0, 0,
663 0, 0, 0, 0, 0, 0, 0, 0,
664 0, 0, 0, 0, 0, 0, 0, 0},
665 {0, 0, 0, 0},
666 {0, 0, 0, 0, 0, 0, 0, 0,
667 0, 0, 0, 0, 0, 0, 0, 0,
668 0, 0, 0, 0, 0, 0, 0, 0,
669 0, 0, 0, 0, 0, 0, 0, 0}
670 },
671#if ((RCAR_DRAM_CHANNEL == 5) && (RCAR_DRAM_SPLIT == 2))
672 {
673 {0x02, 0x02},
674 0x00543210,
675 0x2301,
676 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
677 {0x08, 0x08, 0x08, 0x08},
678 WDQLVL_PAT,
679 {0, 0, 0, 0, 0, 0, 0, 0,
680 0, 0},
681 {0, 0, 0, 0},
682 {0, 0, 0, 0, 0, 0, 0, 0,
683 0, 0, 0, 0, 0, 0, 0, 0,
684 0, 0, 0, 0, 0, 0, 0, 0,
685 0, 0, 0, 0, 0, 0, 0, 0},
686 {0, 0, 0, 0},
687 {0, 0, 0, 0, 0, 0, 0, 0,
688 0, 0, 0, 0, 0, 0, 0, 0,
689 0, 0, 0, 0, 0, 0, 0, 0,
690 0, 0, 0, 0, 0, 0, 0, 0}
691 },
692#else
693 {
694 {0x02, 0x02},
695 0x00105432,
696 0x3210,
697 {0x43256107, 0x07162354, 0x10234567, 0x01235467},
698 {0x08, 0x08, 0x08, 0x08},
699 WDQLVL_PAT,
700 {0, 0, 0, 0, 0, 0, 0, 0,
701 0, 0},
702 {0, 0, 0, 0},
703 {0, 0, 0, 0, 0, 0, 0, 0,
704 0, 0, 0, 0, 0, 0, 0, 0,
705 0, 0, 0, 0, 0, 0, 0, 0,
706 0, 0, 0, 0, 0, 0, 0, 0},
707 {0, 0, 0, 0},
708 {0, 0, 0, 0, 0, 0, 0, 0,
709 0, 0, 0, 0, 0, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0}
712 },
713#endif
714 {
715 {0x02, 0x02},
716 0x00543210,
717 0x2301,
718 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
719 {0x08, 0x08, 0x08, 0x08},
720 WDQLVL_PAT,
721 {0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0},
723 {0, 0, 0, 0},
724 {0, 0, 0, 0, 0, 0, 0, 0,
725 0, 0, 0, 0, 0, 0, 0, 0,
726 0, 0, 0, 0, 0, 0, 0, 0,
727 0, 0, 0, 0, 0, 0, 0, 0},
728 {0, 0, 0, 0},
729 {0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0}
733 },
734 {
735 {0x02, 0x02},
736 0x00543210,
737 0x2301,
738 {0x12034765, 0x23105467, 0x23017645, 0x32106745},
739 {0x08, 0x08, 0x08, 0x08},
740 WDQLVL_PAT,
741 {0, 0, 0, 0, 0, 0, 0, 0,
742 0, 0},
743 {0, 0, 0, 0},
744 {0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0},
748 {0, 0, 0, 0},
749 {0, 0, 0, 0, 0, 0, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0}
753 }
754 }
755 },
756/* boardcnf[9] RENESAS SALVATOR-MS(1rank) board with H3 Ver.2.0 or later/SoC */
757 {
758 0x0f,
759 0x01,
760 0x300,
761 0,
762 0x300,
763 0x0a0,
764 {
765 {
766 {0x02, 0xff},
767 0x00543210,
768 0x3210,
769 {0x27645310, 0x75346210, 0x53467210, 0x23674510},
770 {0x08, 0x08, 0x08, 0x08},
771 WDQLVL_PAT,
772 {0, 0, 0, 0, 0, 0, 0, 0,
773 0, 0},
774 {0, 0, 0, 0},
775 {0, 0, 0, 0, 0, 0, 0, 0,
776 0, 0, 0, 0, 0, 0, 0, 0,
777 0, 0, 0, 0, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 0},
779 {0, 0, 0, 0},
780 {0, 0, 0, 0, 0, 0, 0, 0,
781 0, 0, 0, 0, 0, 0, 0, 0,
782 0, 0, 0, 0, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0}
784 },
785 {
786 {0x02, 0xff},
787 0x00543210,
788 0x2301,
789 {0x23764510, 0x43257610, 0x43752610, 0x37652401},
790 {0x08, 0x08, 0x08, 0x08},
791 WDQLVL_PAT,
792 {-128, -128, -128, -128, -128, -128, 0, 0,
793 0, 0},
794 {0, 0, 0, 0},
795 {0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0},
799 {0, 0, 0, 0},
800 {0, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 0, 0, 0, 0, 0, 0, 0,
803 0, 0, 0, 0, 0, 0, 0, 0}
804 },
805 {
806 {0x02, 0xff},
807 0x00452103,
808 0x3210,
809 {0x32764510, 0x43257610, 0x43752610, 0x26573401},
810 {0x08, 0x08, 0x08, 0x08},
811 WDQLVL_PAT,
812 {0, 0, 0, 0, 0, 0, 0, 0,
813 0, 0},
814 {0, 0, 0, 0},
815 {0, 0, 0, 0, 0, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 0, 0, 0, 0},
819 {0, 0, 0, 0},
820 {0, 0, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 0, 0, 0}
824 },
825 {
826 {0x02, 0xff},
827 0x00520413,
828 0x2301,
829 {0x47652301, 0x75346210, 0x53467210, 0x32674501},
830 {0x08, 0x08, 0x08, 0x08},
831 WDQLVL_PAT,
832 {30, 30, 30, 30, 30, 30, 30, 30,
833 30, 30},
834 {0, 0, 0, 0},
835 {0, 0, 0, 0, 0, 0, 0, 0,
836 0, 0, 0, 0, 0, 0, 0, 0,
837 0, 0, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 0, 0, 0},
839 {0, 0, 0, 0},
840 {0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0}
844 }
845 }
846 },
847/* boardcnf[10] RENESAS Kriek(2rank) board with M3-N/SoC */
848 {
849 0x01,
850 0x01,
851 0x300,
852 0,
853 0x300,
854 0x0a0,
855 {
856 {
857 {0x02, 0x02},
858 0x00345201,
859 0x3201,
860 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
861 {0x08, 0x08, 0x08, 0x08},
862 WDQLVL_PAT,
863 {0, 0, 0, 0, 0, 0, 0, 0,
864 0, 0},
865 {0, 0, 0, 0},
866 {0, 0, 0, 0, 0, 0, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 0, 0, 0, 0,
869 0, 0, 0, 0, 0, 0, 0, 0},
870 {0, 0, 0, 0},
871 {0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 0, 0, 0, 0}
875 }
876 }
877 },
878/* boardcnf[11] RENESAS SALVATOR-X board with M3-N/SIP(8Gbit 2rank) */
879 {
880 0x01,
881 0x01,
882 0x300,
883 0,
884 0x300,
885 0x0a0,
886 {
887 {
Marek Vasut6c245a52018-12-12 18:06:39 +0100888#if (RCAR_DRAM_LPDDR4_MEMCONF == 2)
889 {0x04, 0x04},
890#else
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200891 {0x02, 0x02},
Marek Vasut6c245a52018-12-12 18:06:39 +0100892#endif
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200893 0x00342501,
894 0x3201,
895 {0x10672534, 0x43257106, 0x34527601, 0x71605243},
896 {0x08, 0x08, 0x08, 0x08},
897 WDQLVL_PAT,
898 {0, 0, 0, 0, 0, 0, 0, 0,
899 0, 0},
900 {0, 0, 0, 0},
901 {0, 0, 0, 0, 0, 0, 0, 0,
902 0, 0, 0, 0, 0, 0, 0, 0,
903 0, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 0},
905 {0, 0, 0, 0},
906 {0, 0, 0, 0, 0, 0, 0, 0,
907 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 0}
910 }
911 }
912 },
913/* boardcnf[12] RENESAS CONDOR board with V3H/SoC */
914 {
915 0x01,
916 0x1,
917 0x300,
918 0,
919 0x300,
920 0x0a0,
921 {
922 {
923 {0x02, 0x02},
924 0x00501342,
925 0x3201,
926 {0x70562134, 0x34526071, 0x23147506, 0x12430567},
927 {0x08, 0x08, 0x08, 0x08},
928 WDQLVL_PAT,
929 {0, 0, 0, 0, 0, 0, 0, 0,
930 0, 0},
931 {0, 0, 0, 0},
932 {0, 0, 0, 0, 0, 0, 0, 0,
933 0, 0, 0, 0, 0, 0, 0, 0,
934 0, 0, 0, 0, 0, 0, 0, 0,
935 0, 0, 0, 0, 0, 0, 0, 0},
936 {0, 0, 0, 0},
937 {0, 0, 0, 0, 0, 0, 0, 0,
938 0, 0, 0, 0, 0, 0, 0, 0,
939 0, 0, 0, 0, 0, 0, 0, 0,
940 0, 0, 0, 0, 0, 0, 0, 0}
941 }
942 }
943 },
944/* boardcnf[13] RENESAS KRIEK board with PM3/SoC */
945 {
946 0x05,
947 0x00,
948 0x2c0,
949 -320,
950 0x300,
951 0x0a0,
952 {
953 {
954 {0x02, 0x02},
955 0x00345201,
956 0x3201,
957 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
958 {0x08, 0x08, 0x08, 0x08},
959 WDQLVL_PAT,
960 {0, 0, 0, 0, 0, 0, 0, 0,
961 0, 0},
962 {0, 0, 0, 0},
963 {0, 0, 0, 0, 0, 0, 0, 0,
964 0, 0, 0, 0, 0, 0, 0, 0,
965 0, 0, 0, 0, 0, 0, 0, 0,
966 0, 0, 0, 0, 0, 0, 0, 0},
967 {0, 0, 0, 0},
968 {0, 0, 0, 0, 0, 0, 0, 0,
969 0, 0, 0, 0, 0, 0, 0, 0,
970 0, 0, 0, 0, 0, 0, 0, 0,
971 0, 0, 0, 0, 0, 0, 0, 0}
972 },
973 {
974 {0x02, 0x02},
975 0x00302154,
976 0x2310,
977 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
978 {0x08, 0x08, 0x08, 0x08},
979 WDQLVL_PAT,
980 {0, 0, 0, 0, 0, 0, 0, 0,
981 0, 0},
982 {0, 0, 0, 0},
983 {0, 0, 0, 0, 0, 0, 0, 0,
984 0, 0, 0, 0, 0, 0, 0, 0,
985 0, 0, 0, 0, 0, 0, 0, 0,
986 0, 0, 0, 0, 0, 0, 0, 0},
987 {0, 0, 0, 0},
988 {0, 0, 0, 0, 0, 0, 0, 0,
989 0, 0, 0, 0, 0, 0, 0, 0,
990 0, 0, 0, 0, 0, 0, 0, 0,
991 0, 0, 0, 0, 0, 0, 0, 0}
992 },
993 {
994 {0x02, 0x02},
995 0x00302154,
996 0x2310,
997 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
998 {0x08, 0x08, 0x08, 0x08},
999 WDQLVL_PAT,
1000 {0, 0, 0, 0, 0, 0, 0, 0,
1001 0, 0},
1002 {0, 0, 0, 0},
1003 {0, 0, 0, 0, 0, 0, 0, 0,
1004 0, 0, 0, 0, 0, 0, 0, 0,
1005 0, 0, 0, 0, 0, 0, 0, 0,
1006 0, 0, 0, 0, 0, 0, 0, 0},
1007 {0, 0, 0, 0},
1008 {0, 0, 0, 0, 0, 0, 0, 0,
1009 0, 0, 0, 0, 0, 0, 0, 0,
1010 0, 0, 0, 0, 0, 0, 0, 0,
1011 0, 0, 0, 0, 0, 0, 0, 0}
1012 },
1013 {
1014 {0xff, 0xff},
1015 0,
1016 0,
1017 {0, 0, 0, 0},
1018 {0, 0, 0, 0},
1019 WDQLVL_PAT,
1020 {0, 0, 0, 0, 0, 0, 0, 0,
1021 0, 0},
1022 {0, 0, 0, 0},
1023 {0, 0, 0, 0, 0, 0, 0, 0,
1024 0, 0, 0, 0, 0, 0, 0, 0,
1025 0, 0, 0, 0, 0, 0, 0, 0,
1026 0, 0, 0, 0, 0, 0, 0, 0},
1027 {0, 0, 0, 0},
1028 {0, 0, 0, 0, 0, 0, 0, 0,
1029 0, 0, 0, 0, 0, 0, 0, 0,
1030 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, 0, 0, 0, 0, 0}
1032 }
1033 }
1034 },
1035/* boardcnf[14] SALVATOR-X board with H3 Ver.2.0 or later/SIP(16Gbit 1rank) */
1036 {
1037#if RCAR_DRAM_CHANNEL == 5
1038 0x05,
1039#else
1040 0x0f,
1041#endif
1042 0x01,
1043 0x300,
1044 0,
1045 0x300,
1046 0x0a0,
1047 {
1048 {
1049 {0x04, 0xff},
1050 0x00543210,
1051 0x2310,
1052 {0x70631425, 0x34527016, 0x43527610, 0x32104567},
1053 {0x08, 0x08, 0x08, 0x08},
1054 WDQLVL_PAT,
1055 {0, 0, 0, 0, 0, 0, 0, 0,
1056 0, 0},
1057 {0, 0, 0, 0},
1058 {0, 0, 0, 0, 0, 0, 0, 0,
1059 0, 0, 0, 0, 0, 0, 0, 0,
1060 0, 0, 0, 0, 0, 0, 0, 0,
1061 0, 0, 0, 0, 0, 0, 0, 0},
1062 {0, 0, 0, 0},
1063 {0, 0, 0, 0, 0, 0, 0, 0,
1064 0, 0, 0, 0, 0, 0, 0, 0,
1065 0, 0, 0, 0, 0, 0, 0, 0,
1066 0, 0, 0, 0, 0, 0, 0, 0}
1067 },
1068#if ((RCAR_DRAM_CHANNEL == 5) && (RCAR_DRAM_SPLIT == 2))
1069 {
1070 {0x04, 0xff},
1071 0x00543210,
1072 0x2301,
1073 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
1074 {0x08, 0x08, 0x08, 0x08},
1075 WDQLVL_PAT,
1076 {0, 0, 0, 0, 0, 0, 0, 0,
1077 0, 0},
1078 {0, 0, 0, 0},
1079 {0, 0, 0, 0, 0, 0, 0, 0,
1080 0, 0, 0, 0, 0, 0, 0, 0,
1081 0, 0, 0, 0, 0, 0, 0, 0,
1082 0, 0, 0, 0, 0, 0, 0, 0},
1083 {0, 0, 0, 0},
1084 {0, 0, 0, 0, 0, 0, 0, 0,
1085 0, 0, 0, 0, 0, 0, 0, 0,
1086 0, 0, 0, 0, 0, 0, 0, 0,
1087 0, 0, 0, 0, 0, 0, 0, 0}
1088 },
1089#else
1090 {
1091 {0x04, 0xff},
1092 0x00105432,
1093 0x3210,
1094 {0x43256107, 0x07162354, 0x10234567, 0x01235467},
1095 {0x08, 0x08, 0x08, 0x08},
1096 WDQLVL_PAT,
1097 {0, 0, 0, 0, 0, 0, 0, 0,
1098 0, 0},
1099 {0, 0, 0, 0},
1100 {0, 0, 0, 0, 0, 0, 0, 0,
1101 0, 0, 0, 0, 0, 0, 0, 0,
1102 0, 0, 0, 0, 0, 0, 0, 0,
1103 0, 0, 0, 0, 0, 0, 0, 0},
1104 {0, 0, 0, 0},
1105 {0, 0, 0, 0, 0, 0, 0, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0,
1107 0, 0, 0, 0, 0, 0, 0, 0,
1108 0, 0, 0, 0, 0, 0, 0, 0}
1109 },
1110#endif
1111 {
1112 {0x04, 0xff},
1113 0x00543210,
1114 0x2301,
1115 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
1116 {0x08, 0x08, 0x08, 0x08},
1117 WDQLVL_PAT,
1118 {0, 0, 0, 0, 0, 0, 0, 0,
1119 0, 0},
1120 {0, 0, 0, 0},
1121 {0, 0, 0, 0, 0, 0, 0, 0,
1122 0, 0, 0, 0, 0, 0, 0, 0,
1123 0, 0, 0, 0, 0, 0, 0, 0,
1124 0, 0, 0, 0, 0, 0, 0, 0},
1125 {0, 0, 0, 0},
1126 {0, 0, 0, 0, 0, 0, 0, 0,
1127 0, 0, 0, 0, 0, 0, 0, 0,
1128 0, 0, 0, 0, 0, 0, 0, 0,
1129 0, 0, 0, 0, 0, 0, 0, 0}
1130 },
1131 {
1132 {0x04, 0xff},
1133 0x00543210,
1134 0x2301,
1135 {0x12034765, 0x23105467, 0x23017645, 0x32106745},
1136 {0x08, 0x08, 0x08, 0x08},
1137 WDQLVL_PAT,
1138 {0, 0, 0, 0, 0, 0, 0, 0,
1139 0, 0},
1140 {0, 0, 0, 0},
1141 {0, 0, 0, 0, 0, 0, 0, 0,
1142 0, 0, 0, 0, 0, 0, 0, 0,
1143 0, 0, 0, 0, 0, 0, 0, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0},
1145 {0, 0, 0, 0},
1146 {0, 0, 0, 0, 0, 0, 0, 0,
1147 0, 0, 0, 0, 0, 0, 0, 0,
1148 0, 0, 0, 0, 0, 0, 0, 0,
1149 0, 0, 0, 0, 0, 0, 0, 0}
1150 }
1151 }
1152 },
1153/* boardcnf[15] RENESAS KRIEK board with H3N */
1154 {
1155 0x05,
1156 0x01,
1157 0x300,
1158 0,
1159 0x300,
1160 0x0a0,
1161 {
1162 {
1163 {0x02, 0x02},
1164 0x00345201,
1165 0x3201,
1166 {0x01672543, 0x45367012, 0x45632107, 0x60715234},
1167 {0x08, 0x08, 0x08, 0x08},
1168 WDQLVL_PAT,
1169 {0, 0, 0, 0, 0, 0, 0, 0,
1170 0, 0},
1171 {0, 0, 0, 0},
1172 {0, 0, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 0, 0, 0, 0, 0,
1174 0, 0, 0, 0, 0, 0, 0, 0,
1175 0, 0, 0, 0, 0, 0, 0, 0},
1176 {0, 0, 0, 0},
1177 {0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0}
1181 },
1182 {
1183 {0x02, 0x02},
1184 0x00302154,
1185 0x2310,
1186 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1187 {0x08, 0x08, 0x08, 0x08},
1188 WDQLVL_PAT,
1189 {0, 0, 0, 0, 0, 0, 0, 0,
1190 0, 0},
1191 {0, 0, 0, 0},
1192 {0, 0, 0, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 0, 0, 0,
1194 0, 0, 0, 0, 0, 0, 0, 0,
1195 0, 0, 0, 0, 0, 0, 0, 0},
1196 {0, 0, 0, 0},
1197 {0, 0, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0}
1201 },
1202 {
1203 {0x02, 0x02},
1204 0x00302154,
1205 0x2310,
1206 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1207 {0x08, 0x08, 0x08, 0x08},
1208 WDQLVL_PAT,
1209 {0, 0, 0, 0, 0, 0, 0, 0,
1210 0, 0},
1211 {0, 0, 0, 0},
1212 {0, 0, 0, 0, 0, 0, 0, 0,
1213 0, 0, 0, 0, 0, 0, 0, 0,
1214 0, 0, 0, 0, 0, 0, 0, 0,
1215 0, 0, 0, 0, 0, 0, 0, 0},
1216 {0, 0, 0, 0},
1217 {0, 0, 0, 0, 0, 0, 0, 0,
1218 0, 0, 0, 0, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0}
1221 },
1222 {
1223 {0xff, 0xff},
1224 0,
1225 0,
1226 {0, 0, 0, 0},
1227 {0, 0, 0, 0},
1228 WDQLVL_PAT,
1229 {0, 0, 0, 0, 0, 0, 0, 0,
1230 0, 0},
1231 {0, 0, 0, 0},
1232 {0, 0, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0},
1236 {0, 0, 0, 0},
1237 {0, 0, 0, 0, 0, 0, 0, 0,
1238 0, 0, 0, 0, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0}
1241 }
1242 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001243 },
1244/* boardcnf[16] RENESAS KRIEK-P2P board with M3-W/SoC */
1245 {
1246 0x03,
1247 0x01,
1248 0x0320,
1249 0,
1250 0x0300,
1251 0x00a0,
1252 {
1253 {
1254 {0x04, 0x04},
1255 0x520314FFFF523041,
1256 0x3201,
1257 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1258 {0x08, 0x08, 0x08, 0x08},
1259 WDQLVL_PAT,
1260 {0, 0, 0, 0, 0, 0, 0, 0,
1261 0, 0, 0, 0, 0, 0, 0, 0},
1262 {0, 0, 0, 0},
1263 {0, 0, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, 0,
1265 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0},
1267 {0, 0, 0, 0},
1268 {0, 0, 0, 0, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 0, 0, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 0, 0, 0}
1272 },
1273 {
1274 {0x04, 0x04},
1275 0x314250FFFF312405,
1276 0x2310,
1277 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1278 {0x08, 0x08, 0x08, 0x08},
1279 WDQLVL_PAT,
1280 {0, 0, 0, 0, 0, 0, 0, 0,
1281 0, 0, 0, 0, 0, 0, 0, 0},
1282 {0, 0, 0, 0},
1283 {0, 0, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 0, 0, 0,
1286 0, 0, 0, 0, 0, 0, 0, 0},
1287 {0, 0, 0, 0},
1288 {0, 0, 0, 0, 0, 0, 0, 0,
1289 0, 0, 0, 0, 0, 0, 0, 0,
1290 0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 0, 0, 0, 0, 0}
1292 }
1293 }
1294 },
1295/* boardcnf[17] RENESAS KRIEK-P2P board with M3-N/SoC */
1296 {
1297 0x01,
1298 0x01,
1299 0x0300,
1300 0,
1301 0x0300,
1302 0x00a0,
1303 {
1304 {
1305 {0x04, 0x04},
1306 0x520314FFFF523041,
1307 0x3201,
1308 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1309 {0x08, 0x08, 0x08, 0x08},
1310 WDQLVL_PAT,
1311 {0, 0, 0, 0, 0, 0, 0, 0,
1312 0, 0, 0, 0, 0, 0, 0, 0},
1313 {0, 0, 0, 0},
1314 {0, 0, 0, 0, 0, 0, 0, 0,
1315 0, 0, 0, 0, 0, 0, 0, 0,
1316 0, 0, 0, 0, 0, 0, 0, 0,
1317 0, 0, 0, 0, 0, 0, 0, 0},
1318 {0, 0, 0, 0},
1319 {0, 0, 0, 0, 0, 0, 0, 0,
1320 0, 0, 0, 0, 0, 0, 0, 0,
1321 0, 0, 0, 0, 0, 0, 0, 0,
1322 0, 0, 0, 0, 0, 0, 0, 0}
1323 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001324 }
Marek Vasut3af20052019-02-25 14:57:08 +01001325 },
1326/* boardcnf[18] RENESAS SALVATOR-X board with M3-W/SIP(16Gbit 2rank) */
1327 {
1328 0x03,
1329 0x01,
1330 0x02c0,
1331 0,
1332 0x0300,
1333 0x00a0,
1334 {
1335 {
1336 {0x04, 0x04},
1337 0x00543210,
1338 0x3201,
1339 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
1340 {0x08, 0x08, 0x08, 0x08},
1341 WDQLVL_PAT,
1342 {0, 0, 0, 0, 0, 0, 0, 0,
1343 0, 0},
1344 {0, 0, 0, 0},
1345 {0, 0, 0, 0, 0, 0, 0, 0,
1346 0, 0, 0, 0, 0, 0, 0, 0,
1347 0, 0, 0, 0, 0, 0, 0, 0,
1348 0, 0, 0, 0, 0, 0, 0, 0},
1349 {0, 0, 0, 0},
1350 {0, 0, 0, 0, 0, 0, 0, 0,
1351 0, 0, 0, 0, 0, 0, 0, 0,
1352 0, 0, 0, 0, 0, 0, 0, 0,
1353 0, 0, 0, 0, 0, 0, 0, 0}
1354 },
1355 {
1356 {0x04, 0x04},
1357 0x00543210,
1358 0x2310,
1359 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
1360 {0x08, 0x08, 0x08, 0x08},
1361 WDQLVL_PAT,
1362 {0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0},
1364 {0, 0, 0, 0},
1365 {0, 0, 0, 0, 0, 0, 0, 0,
1366 0, 0, 0, 0, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 0, 0,
1368 0, 0, 0, 0, 0, 0, 0, 0},
1369 {0, 0, 0, 0},
1370 {0, 0, 0, 0, 0, 0, 0, 0,
1371 0, 0, 0, 0, 0, 0, 0, 0,
1372 0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 0, 0, 0, 0, 0, 0}
1374 }
1375 }
1376 },
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001377/* boardcnf[19] RENESAS SALVATOR-X board with M3-W/SIP(16Gbit 1rank) */
1378 {
1379 0x03,
1380 0x01,
1381 0x02c0,
1382 0,
1383 0x0300,
1384 0x00a0,
1385 {
1386 {
1387 {0x04, 0xff},
1388 0x00543210,
1389 0x3201,
1390 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
1391 {0x08, 0x08, 0x08, 0x08},
1392 WDQLVL_PAT,
1393 {0, 0, 0, 0, 0, 0, 0, 0,
1394 0, 0},
1395 {0, 0, 0, 0},
1396 {0, 0, 0, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 0, 0, 0, 0,
1398 0, 0, 0, 0, 0, 0, 0, 0,
1399 0, 0, 0, 0, 0, 0, 0, 0},
1400 {0, 0, 0, 0},
1401 {0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 0, 0, 0, 0, 0, 0, 0,
1403 0, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0}
1405 },
1406 {
1407 {0x04, 0xff},
1408 0x00543210,
1409 0x2310,
1410 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
1411 {0x08, 0x08, 0x08, 0x08},
1412 WDQLVL_PAT,
1413 {0, 0, 0, 0, 0, 0, 0, 0,
1414 0, 0},
1415 {0, 0, 0, 0},
1416 {0, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 0, 0, 0, 0, 0, 0,
1418 0, 0, 0, 0, 0, 0, 0, 0,
1419 0, 0, 0, 0, 0, 0, 0, 0},
1420 {0, 0, 0, 0},
1421 {0, 0, 0, 0, 0, 0, 0, 0,
1422 0, 0, 0, 0, 0, 0, 0, 0,
1423 0, 0, 0, 0, 0, 0, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0}
1425 }
1426 }
1427 },
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001428/* boardcnf[20] RENESAS KRIEK 16Gbit/2rank/2ch board with M3-W/SoC */
1429 {
1430 0x03,
1431 0x01,
1432 0x02c0,
1433 0,
1434 0x0300,
1435 0x00a0,
1436 {
1437 {
1438 {0x04, 0x04},
1439 0x00345201,
1440 0x3201,
1441 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1442 {0x08, 0x08, 0x08, 0x08},
1443 WDQLVL_PAT,
1444 {0, 0, 0, 0, 0, 0, 0, 0,
1445 0, 0},
1446 {0, 0, 0, 0},
1447 {0, 0, 0, 0, 0, 0, 0, 0,
1448 0, 0, 0, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0},
1451 {0, 0, 0, 0},
1452 {0, 0, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0,
1454 0, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 0, 0, 0, 0, 0}
1456 },
1457 {
1458 {0x04, 0x04},
1459 0x00302154,
1460 0x2310,
1461 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1462 {0x08, 0x08, 0x08, 0x08},
1463 WDQLVL_PAT,
1464 {0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0},
1466 {0, 0, 0, 0},
1467 {0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 0, 0},
1471 {0, 0, 0, 0},
1472 {0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0}
1476 }
1477 }
1478 },
1479/* boardcnf[21] RENESAS KRIEK 16Gbit/1rank/2ch board with M3-W/SoC */
1480 {
1481 0x03,
1482 0x01,
1483 0x02c0,
1484 0,
1485 0x0300,
1486 0x00a0,
1487 {
1488 {
1489 {0x04, 0xff},
1490 0x00345201,
1491 0x3201,
1492 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1493 {0x08, 0x08, 0x08, 0x08},
1494 WDQLVL_PAT,
1495 {0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0},
1497 {0, 0, 0, 0},
1498 {0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0},
1502 {0, 0, 0, 0},
1503 {0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 0}
1507 },
1508 {
1509 {0x04, 0xff},
1510 0x00302154,
1511 0x2310,
1512 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1513 {0x08, 0x08, 0x08, 0x08},
1514 WDQLVL_PAT,
1515 {0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0},
1517 {0, 0, 0, 0},
1518 {0, 0, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0},
1522 {0, 0, 0, 0},
1523 {0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 0}
1527 }
1528 }
1529 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001530};
1531
1532void boardcnf_get_brd_clk(uint32_t brd, uint32_t * clk, uint32_t * div)
1533{
1534 uint32_t md;
1535
1536 if ((Prr_Product == PRR_PRODUCT_H3) && (Prr_Cut == PRR_PRODUCT_10)) {
1537 *clk = 50;
1538 *div = 3;
1539 } else {
1540 md = (mmio_read_32(RST_MODEMR) >> 13) & 0x3;
1541 switch (md) {
1542 case 0x0:
1543 *clk = 50;
1544 *div = 3;
1545 break;
1546 case 0x1:
1547 *clk = 60;
1548 *div = 3;
1549 break;
1550 case 0x2:
1551 *clk = 75;
1552 *div = 3;
1553 break;
1554 case 0x3:
1555 *clk = 100;
1556 *div = 3;
1557 break;
1558 }
1559 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001560 (void)brd;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001561}
1562
1563void boardcnf_get_ddr_mbps(uint32_t brd, uint32_t * mbps, uint32_t * div)
1564{
1565 uint32_t md;
1566
1567 md = (mmio_read_32(RST_MODEMR) >> 17) & 0x5;
1568 md = (md | (md >> 1)) & 0x3;
1569 switch (md) {
1570 case 0x0:
1571 *mbps = 3200;
1572 *div = 1;
1573 break;
1574 case 0x1:
1575 *mbps = 2800;
1576 *div = 1;
1577 break;
1578 case 0x2:
1579 *mbps = 2400;
1580 *div = 1;
1581 break;
1582 case 0x3:
1583 *mbps = 1600;
1584 *div = 1;
1585 break;
1586 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001587 (void)brd;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001588}
1589
1590#define _def_REFPERIOD 1890
1591
1592#define M3_SAMPLE_TT_A84 0xB866CC10, 0x3B250421
1593#define M3_SAMPLE_TT_A85 0xB866CC10, 0x3AA50421
1594#define M3_SAMPLE_TT_A86 0xB866CC10, 0x3AA48421
1595#define M3_SAMPLE_FF_B45 0xB866CC10, 0x3AB00C21
1596#define M3_SAMPLE_FF_B49 0xB866CC10, 0x39B10C21
1597#define M3_SAMPLE_FF_B56 0xB866CC10, 0x3AAF8C21
1598#define M3_SAMPLE_SS_E24 0xB866CC10, 0x3BA39421
1599#define M3_SAMPLE_SS_E28 0xB866CC10, 0x3C231421
1600#define M3_SAMPLE_SS_E32 0xB866CC10, 0x3C241421
1601
1602static const uint32_t TermcodeBySample[20][3] = {
1603 {M3_SAMPLE_TT_A84, 0x000158D5},
1604 {M3_SAMPLE_TT_A85, 0x00015955},
1605 {M3_SAMPLE_TT_A86, 0x00015955},
1606 {M3_SAMPLE_FF_B45, 0x00015690},
1607 {M3_SAMPLE_FF_B49, 0x00015753},
1608 {M3_SAMPLE_FF_B56, 0x00015793},
1609 {M3_SAMPLE_SS_E24, 0x00015996},
1610 {M3_SAMPLE_SS_E28, 0x000159D7},
1611 {M3_SAMPLE_SS_E32, 0x00015997},
1612 {0xFFFFFFFF, 0xFFFFFFFF, 0x0001554F}
1613};
1614
1615#ifdef BOARD_JUDGE_AUTO
1616/*
1617 * SAMPLE board detect function
1618 */
1619#define PFC_PMMR 0xE6060000U
1620#define PFC_PUEN5 0xE6060414U
1621#define PFC_PUEN6 0xE6060418U
1622#define PFC_PUD5 0xE6060454U
1623#define PFC_PUD6 0xE6060458U
1624#define GPIO_INDT5 0xE605500CU
1625#define GPIO_INDT6 0xE605540CU
Marek Vasuta75f8262019-07-14 08:55:27 +02001626#define GPIO_GPSR6 0xE6060118U
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001627
1628#if (RCAR_GEN3_ULCB == 0)
1629static void pfc_write_and_poll(uint32_t a, uint32_t v)
1630{
1631 mmio_write_32(PFC_PMMR, ~v);
1632 v = ~mmio_read_32(PFC_PMMR);
1633 mmio_write_32(a, v);
1634 while (v != mmio_read_32(a)) ;
1635 dsb_sev();
1636}
1637#endif
1638
1639#ifndef RCAR_GEN3_ULCB
1640#define RCAR_GEN3_ULCB 0
1641#endif
1642
1643#if (RCAR_GEN3_ULCB == 0) /* non Starter Kit */
1644
1645static uint32_t opencheck_SSI_WS6(void)
1646{
1647 uint32_t dataL, down, up;
1648 uint32_t gpsr6_bak;
1649 uint32_t puen5_bak;
1650 uint32_t pud5_bak;
1651
1652 gpsr6_bak = mmio_read_32(GPIO_GPSR6);
1653 puen5_bak = mmio_read_32(PFC_PUEN5);
1654 pud5_bak = mmio_read_32(PFC_PUD5);
1655 dsb_sev();
1656
Marek Vasuta75f8262019-07-14 08:55:27 +02001657 dataL = (gpsr6_bak & ~BIT(15));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001658 pfc_write_and_poll(GPIO_GPSR6, dataL);
1659
1660 /* Pull-Up/Down Enable (PUEN5[22]=1) */
1661 dataL = puen5_bak;
Marek Vasuta75f8262019-07-14 08:55:27 +02001662 dataL |= (BIT(22));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001663 pfc_write_and_poll(PFC_PUEN5, dataL);
1664
1665 /* Pull-Down-Enable (PUD5[22]=0, PUEN5[22]=1) */
1666 dataL = pud5_bak;
Marek Vasuta75f8262019-07-14 08:55:27 +02001667 dataL &= ~(BIT(22));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001668 pfc_write_and_poll(PFC_PUD5, dataL);
1669 /* GPSR6[15]=SSI_WS6 */
1670 rcar_micro_delay(10);
1671 down = (mmio_read_32(GPIO_INDT6) >> 15) & 0x1;
1672 dsb_sev();
1673
1674 /* Pull-Up-Enable (PUD5[22]=1, PUEN5[22]=1) */
1675 dataL = pud5_bak;
Marek Vasuta75f8262019-07-14 08:55:27 +02001676 dataL |= (BIT(22));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001677 pfc_write_and_poll(PFC_PUD5, dataL);
1678
1679 /* GPSR6[15]=SSI_WS6 */
1680 rcar_micro_delay(10);
1681 up = (mmio_read_32(GPIO_INDT6) >> 15) & 0x1;
1682
1683 dsb_sev();
1684
1685 pfc_write_and_poll(GPIO_GPSR6, gpsr6_bak);
1686 pfc_write_and_poll(PFC_PUEN5, puen5_bak);
1687 pfc_write_and_poll(PFC_PUD5, pud5_bak);
1688
1689 if (down == up) {
1690 /* Same = Connect */
1691 return 0;
Marek Vasut6c245a52018-12-12 18:06:39 +01001692 } else {
1693 /* Diff = Open */
1694 return 1;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001695 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001696}
1697
1698#endif
1699
1700static uint32_t _board_judge(void)
1701{
1702 uint32_t brd;
1703#if (RCAR_GEN3_ULCB==1)
1704 /* Starter Kit */
1705 if (Prr_Product == PRR_PRODUCT_H3) {
1706 if (Prr_Cut <= PRR_PRODUCT_11) {
1707 /* RENESAS Starter Kit(H3 Ver.1.x/SIP) board */
1708 brd = 2;
1709 } else {
1710 /* RENESAS Starter Kit(H3 Ver.2.0 or later/SIP) board */
1711#if (RCAR_DRAM_LPDDR4_MEMCONF == 0)
1712 brd = 7;
1713#else
1714 brd = 8;
1715#endif
1716 }
1717 } else if (Prr_Product == PRR_PRODUCT_M3) {
1718 /* RENESAS Starter Kit(M3-W/SIP 8Gbit 1rank) board */
1719 brd = 3;
1720 } else {
1721 /* RENESAS Starter Kit(M3-N/SIP) board */
1722 brd = 11;
1723 }
1724#else
1725 uint32_t usb2_ovc_open;
1726
1727 usb2_ovc_open = opencheck_SSI_WS6();
1728
1729 /* RENESAS Eva-borad */
Marek Vasut6c245a52018-12-12 18:06:39 +01001730 brd = 99;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001731 if (Prr_Product == PRR_PRODUCT_V3H) {
1732 /* RENESAS Condor board */
1733 brd = 12;
1734 } else if (usb2_ovc_open) {
1735 if (Prr_Product == PRR_PRODUCT_M3N) {
1736 /* RENESAS Kriek board with M3-N */
1737 brd = 10;
1738 } else if (Prr_Product == PRR_PRODUCT_M3) {
1739 /* RENESAS Kriek board with M3-W */
1740 brd = 1;
Marek Vasut6c245a52018-12-12 18:06:39 +01001741 } else if ((Prr_Product == PRR_PRODUCT_H3)
1742 && (Prr_Cut<=PRR_PRODUCT_11)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001743 /* RENESAS Kriek board with PM3 */
1744 brd = 13;
Marek Vasut6c245a52018-12-12 18:06:39 +01001745 } else if ((Prr_Product == PRR_PRODUCT_H3)
1746 && (Prr_Cut > PRR_PRODUCT_20)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001747 /* RENESAS Kriek board with H3N */
1748 brd = 15;
1749 }
1750 } else {
1751 if (Prr_Product == PRR_PRODUCT_H3) {
1752 if (Prr_Cut <= PRR_PRODUCT_11) {
1753 /* RENESAS SALVATOR-X (H3 Ver.1.x/SIP) */
1754 brd = 2;
1755 } else if (Prr_Cut < PRR_PRODUCT_30) {
1756 /* RENESAS SALVATOR-X (H3 Ver.2.0/SIP) */
1757 brd = 7; // 8Gbit/1rank
1758 } else {
1759 /* RENESAS SALVATOR-X (H3 Ver.3.0/SIP) */
1760#if (RCAR_DRAM_LPDDR4_MEMCONF == 0)
1761 brd = 7;
1762#else
1763 brd = 8;
1764#endif
1765 }
1766 } else if (Prr_Product == PRR_PRODUCT_M3N) {
1767 /* RENESAS SALVATOR-X (M3-N/SIP) */
1768 brd = 11;
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001769 } else if ((Prr_Product == PRR_PRODUCT_M3) && (Prr_Cut <= PRR_PRODUCT_20)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001770 /* RENESAS SALVATOR-X (M3-W/SIP) */
1771 brd = 0;
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001772 } else if ((Prr_Product == PRR_PRODUCT_M3) && (Prr_Cut < PRR_PRODUCT_30)) {
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001773 /* RENESAS SALVATOR-X (M3-W Ver.1.x/SIP) */
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001774 brd = 19;
Marek Vasut3af20052019-02-25 14:57:08 +01001775 } else if ((Prr_Product == PRR_PRODUCT_M3) && (Prr_Cut >= PRR_PRODUCT_30)) {
1776 /* RENESAS SALVATOR-X (M3-W ver.3.0/SIP) */
1777 brd = 18;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001778 }
1779 }
1780#endif
Marek Vasut6c245a52018-12-12 18:06:39 +01001781
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001782 return brd;
1783}
1784#endif