blob: 45b6b088c121fac3ec893a75848172a009678ca4 [file] [log] [blame]
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001/*
Lad Prabhakar9f2b5792021-03-10 14:30:20 +00002 * Copyright (c) 2015-2021, Renesas Electronics Corporation.
Marek Vasut6ad74c32019-08-08 16:34:22 +02003 * All rights reserved.
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02004 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
Lad Prabhakar9f2b5792021-03-10 14:30:20 +00008#ifndef RZG_SOC
9#define RZG_SOC 0
10#endif
11
12#if (RZG_SOC == 1)
Lad Prabhakared2e11d2021-04-19 17:03:56 +010013#define BOARDNUM 4
Lad Prabhakar9f2b5792021-03-10 14:30:20 +000014#else
Chiaki Fujii59263ee2019-05-17 10:45:02 +090015#define BOARDNUM 22
Lad Prabhakar9f2b5792021-03-10 14:30:20 +000016#endif /* RZG_SOC == 1 */
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020017#define BOARD_JUDGE_AUTO
18
Marek Vasut6c245a52018-12-12 18:06:39 +010019#ifdef BOARD_JUDGE_AUTO
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020020static uint32_t _board_judge(void);
21
22static uint32_t boardcnf_get_brd_type(void)
23{
24 return _board_judge();
25}
Marek Vasut6c245a52018-12-12 18:06:39 +010026#else
27static uint32_t boardcnf_get_brd_type(void)
28{
Marek Vasut6a131772019-08-07 19:56:09 +020029 return 1;
Marek Vasut6c245a52018-12-12 18:06:39 +010030}
31#endif
32
33#define DDR_FAST_INIT
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020034
35struct _boardcnf_ch {
36 uint8_t ddr_density[CS_CNT];
Marek Vasut6c245a52018-12-12 18:06:39 +010037 uint64_t ca_swap;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020038 uint16_t dqs_swap;
39 uint32_t dq_swap[SLICE_CNT];
40 uint8_t dm_swap[SLICE_CNT];
41 uint16_t wdqlvl_patt[16];
Marek Vasut6c245a52018-12-12 18:06:39 +010042 int8_t cacs_adj[16];
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020043 int8_t dm_adj_w[SLICE_CNT];
44 int8_t dq_adj_w[SLICE_CNT * 8];
45 int8_t dm_adj_r[SLICE_CNT];
46 int8_t dq_adj_r[SLICE_CNT * 8];
47};
48
49struct _boardcnf {
50 uint8_t phyvalid;
51 uint8_t dbi_en;
52 uint16_t cacs_dly;
53 int16_t cacs_dly_adj;
54 uint16_t dqdm_dly_w;
55 uint16_t dqdm_dly_r;
56 struct _boardcnf_ch ch[DRAM_CH_CNT];
57};
58
59#define WDQLVL_PAT {\
60 0x00AA,\
61 0x0055,\
62 0x00AA,\
63 0x0155,\
64 0x01CC,\
65 0x0133,\
66 0x00CC,\
67 0x0033,\
68 0x00F0,\
69 0x010F,\
70 0x01F0,\
71 0x010F,\
72 0x00F0,\
73 0x00F0,\
74 0x000F,\
75 0x010F}
76
Lad Prabhakar9f2b5792021-03-10 14:30:20 +000077#if (RZG_SOC == 1)
78static const struct _boardcnf boardcnfs[BOARDNUM] = {
79 {
80/* boardcnf[0] HopeRun HiHope RZ/G2M 16Gbit/1rank/2ch board with G2M SoC */
81 .phyvalid = 0x03U,
82 .dbi_en = 0x01U,
83 .cacs_dly = 0x02c0U,
84 .cacs_dly_adj = 0x0U,
85 .dqdm_dly_w = 0x0300U,
86 .dqdm_dly_r = 0x00a0U,
87 .ch = {
88 {
89 { 0x04U, 0xffU },
90 0x00345201UL,
91 0x3201U,
92 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U },
93 { 0x08U, 0x08U, 0x08U, 0x08U },
94 WDQLVL_PAT,
95 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
96 { 0, 0, 0, 0 },
97 { 0, 0, 0, 0, 0, 0, 0, 0,
98 0, 0, 0, 0, 0, 0, 0, 0,
99 0, 0, 0, 0, 0, 0, 0, 0,
100 0, 0, 0, 0, 0, 0, 0, 0 },
101 { 0, 0, 0, 0 },
102 { 0, 0, 0, 0, 0, 0, 0, 0,
103 0, 0, 0, 0, 0, 0, 0, 0,
104 0, 0, 0, 0, 0, 0, 0, 0,
105 0, 0, 0, 0, 0, 0, 0, 0 }
106 },
107 {
108 { 0x04U, 0xffU },
109 0x00302154UL,
110 0x2310U,
111 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U },
112 { 0x08U, 0x08U, 0x08U, 0x08U },
113 WDQLVL_PAT,
114 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
115 { 0, 0, 0, 0 },
116 { 0, 0, 0, 0, 0, 0, 0, 0,
117 0, 0, 0, 0, 0, 0, 0, 0,
118 0, 0, 0, 0, 0, 0, 0, 0,
119 0, 0, 0, 0, 0, 0, 0, 0 },
120 { 0, 0, 0, 0 },
121 { 0, 0, 0, 0, 0, 0, 0, 0,
122 0, 0, 0, 0, 0, 0, 0, 0,
123 0, 0, 0, 0, 0, 0, 0, 0,
124 0, 0, 0, 0, 0, 0, 0, 0 }
125 }
126 }
127 },
128/* boardcnf[1] HopeRun HiHope RZ/G2M 8Gbit/2rank/2ch board with G2M SoC */
129 {
130 0x03U,
131 0x01U,
132 0x02c0U,
133 0x0U,
134 0x0300U,
135 0x00a0U,
136 {
137 {
138 { 0x02U, 0x02U },
139 0x00345201UL,
140 0x3201U,
141 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U },
142 { 0x08U, 0x08U, 0x08U, 0x08U },
143 WDQLVL_PAT,
144 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
145 { 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 0, 0, 0, 0, 0, 0, 0, 0 },
150 { 0, 0, 0, 0 },
151 { 0, 0, 0, 0, 0, 0, 0, 0,
152 0, 0, 0, 0, 0, 0, 0, 0,
153 0, 0, 0, 0, 0, 0, 0, 0,
154 0, 0, 0, 0, 0, 0, 0, 0 }
155 },
156 {
157 { 0x02U, 0x02U },
158 0x00302154UL,
159 0x2310,
160 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U },
161 { 0x08U, 0x08U, 0x08U, 0x08U },
162 WDQLVL_PAT,
163 { 0, 0, 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 { 0, 0, 0, 0 },
170 { 0, 0, 0, 0, 0, 0, 0, 0,
171 0, 0, 0, 0, 0, 0, 0, 0,
172 0, 0, 0, 0, 0, 0, 0, 0,
173 0, 0, 0, 0, 0, 0, 0, 0 }
174 }
175 }
Lad Prabhakar9c86f412021-04-19 16:59:55 +0100176 },
177/* boardcnf[2] HopeRun HiHope RZ/G2H board 16Gbit/1rank/2ch */
178 {
179 0x05U,
180 0x01U,
181 0x0300U,
182 0,
183 0x0300U,
184 0x00a0U,
185 {
186 {
187 { 0x04U, 0xffU },
188 0x00345201UL,
189 0x3201U,
190 { 0x01672543U, 0x45367012U, 0x45632107U, 0x60715234U },
191 { 0x08U, 0x08U, 0x08U, 0x08U },
192 WDQLVL_PAT,
193 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
194 { 0, 0, 0, 0 },
195 { 0, 0, 0, 0, 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 },
200 { 0, 0, 0, 0, 0, 0, 0, 0,
201 0, 0, 0, 0, 0, 0, 0, 0,
202 0, 0, 0, 0, 0, 0, 0, 0,
203 0, 0, 0, 0, 0, 0, 0, 0 }
204 },
205 {
206 { 0x04U, 0xffU },
207 0x00302154UL,
208 0x2310U,
209 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U },
210 { 0x08U, 0x08U, 0x08U, 0x08U },
211 WDQLVL_PAT,
212 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
213 { 0, 0, 0, 0 },
214 { 0, 0, 0, 0, 0, 0, 0, 0,
215 0, 0, 0, 0, 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 },
219 { 0, 0, 0, 0, 0, 0, 0, 0,
220 0, 0, 0, 0, 0, 0, 0, 0,
221 0, 0, 0, 0, 0, 0, 0, 0,
222 0, 0, 0, 0, 0, 0, 0, 0 }
223 },
224 {
225 { 0x04U, 0xffU },
226 0x00302154UL,
227 0x2310U,
228 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U },
229 { 0x08U, 0x08U, 0x08U, 0x08U },
230 WDQLVL_PAT,
231 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
232 { 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, 0, 0, 0, 0,
236 0, 0, 0, 0, 0, 0, 0, 0 },
237 { 0, 0, 0, 0 },
238 { 0, 0, 0, 0, 0, 0, 0, 0,
239 0, 0, 0, 0, 0, 0, 0, 0,
240 0, 0, 0, 0, 0, 0, 0, 0,
241 0, 0, 0, 0, 0, 0, 0, 0 }
242 },
243 {
244 { 0xffU, 0xffU },
245 0UL,
246 0U,
247 { 0U, 0U, 0U, 0U },
248 { 0U, 0U, 0U, 0U },
249 WDQLVL_PAT,
250 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
251 { 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, 0, 0, 0, 0 },
256 { 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 0, 0, 0, 0, 0, 0, 0, 0 }
261 }
262 }
Lad Prabhakared2e11d2021-04-19 17:03:56 +0100263 },
264/* boardcnf[3] HopeRun HiHope RZ/G2N board 16Gbit/2rank/1ch */
265 {
266 0x01U,
267 0x01U,
268 0x0300U,
269 0,
270 0x0300U,
271 0x00a0U,
272 {
273 {
274 { 0x04U, 0x04U },
275 0x00345201UL,
276 0x3201U,
277 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U },
278 { 0x08U, 0x08U, 0x08U, 0x08U },
279 WDQLVL_PAT,
280 { 0, 0, 0, 0, 0, 0, 0, 0, 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 },
Lad Prabhakar9f2b5792021-03-10 14:30:20 +0000294};
295#else
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200296static const struct _boardcnf boardcnfs[BOARDNUM] = {
297 {
298/* boardcnf[0] RENESAS SALVATOR-X board with M3-W/SIP */
299 .phyvalid = 0x03,
300 .dbi_en = 0x01,
301 .cacs_dly = 0x02c0,
302 .cacs_dly_adj = 0,
303 .dqdm_dly_w = 0x0300,
304 .dqdm_dly_r = 0x00a0,
305 .ch = {
306 {
307 {0x02, 0x02},
308 0x00543210U,
309 0x3201U,
310 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
311 {0x08, 0x08, 0x08, 0x08},
312 WDQLVL_PAT,
313 {0, 0, 0, 0, 0, 0, 0, 0,
314 0, 0},
315 {0, 0, 0, 0},
316 {0, 0, 0, 0, 0, 0, 0, 0,
317 0, 0, 0, 0, 0, 0, 0, 0,
318 0, 0, 0, 0, 0, 0, 0, 0,
319 0, 0, 0, 0, 0, 0, 0, 0},
320 {0, 0, 0, 0},
321 {0, 0, 0, 0, 0, 0, 0, 0,
322 0, 0, 0, 0, 0, 0, 0, 0,
323 0, 0, 0, 0, 0, 0, 0, 0,
324 0, 0, 0, 0, 0, 0, 0, 0}
325 },
326
327 {
328 {0x02, 0x02},
329 0x00543210,
330 0x2310,
331 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
332 {0x08, 0x08, 0x08, 0x08},
333 WDQLVL_PAT,
334 {0, 0, 0, 0, 0, 0, 0, 0,
335 0, 0},
336 {0, 0, 0, 0},
337 {0, 0, 0, 0, 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},
342 {0, 0, 0, 0, 0, 0, 0, 0,
343 0, 0, 0, 0, 0, 0, 0, 0,
344 0, 0, 0, 0, 0, 0, 0, 0,
345 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200346 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200347 }
348 },
349/* boardcnf[1] RENESAS KRIEK board with M3-W/SoC */
350 {
351 0x03,
352 0x01,
353 0x2c0,
354 0,
355 0x300,
356 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200357 {
358 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200359 {0x02, 0x02},
360 0x00345201,
361 0x3201,
362 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
363 {0x08, 0x08, 0x08, 0x08},
364 WDQLVL_PAT,
365 {0, 0, 0, 0, 0, 0, 0, 0,
366 0, 0},
367 {0, 0, 0, 0},
368 {0, 0, 0, 0, 0, 0, 0, 0,
369 0, 0, 0, 0, 0, 0, 0, 0,
370 0, 0, 0, 0, 0, 0, 0, 0,
371 0, 0, 0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200378 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200379 {0x02, 0x02},
380 0x00302154,
381 0x2310,
382 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
383 {0x08, 0x08, 0x08, 0x08},
384 WDQLVL_PAT,
385 {0, 0, 0, 0, 0, 0, 0, 0,
386 0, 0},
387 {0, 0, 0, 0},
388 {0, 0, 0, 0, 0, 0, 0, 0,
389 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, 0, 0, 0, 0, 0, 0,
391 0, 0, 0, 0, 0, 0, 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}
Marek Vasut80784f92019-08-07 19:02:26 +0200397 }
398 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200399 },
400/* boardcnf[2] RENESAS SALVATOR-X board with H3 Ver.1.x/SIP(8Gbit 1rank) */
401 {
402 0x0f,
403 0x00,
404 0x300,
405 -320,
406 0x300,
407 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200408 {
409 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200410 {0x02, 0xff},
411 0x00543210,
412 0x3210,
413 {0x20741365, 0x34256107, 0x57460321, 0x70614532},
414 {0x08, 0x08, 0x08, 0x08},
415 WDQLVL_PAT,
416 {0, 0, 0, 0, 0, 0, 0, 0,
417 0, 0},
418 {0, 0, 0, 0},
419 {0, 0, 0, 0, 0, 0, 0, 0,
420 0, 0, 0, 0, 0, 0, 0, 0,
421 0, 0, 0, 0, 0, 0, 0, 0,
422 0, 0, 0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200429 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200430 {0x02, 0xff},
431 0x00543210,
432 0x3102,
433 {0x23547610, 0x34526107, 0x67452310, 0x32106754},
434 {0x08, 0x08, 0x08, 0x08},
435 WDQLVL_PAT,
436 {0, 0, 0, 0, 0, 0, 0, 0,
437 0, 0},
438 {0, 0, 0, 0},
439 {0, 0, 0, 0, 0, 0, 0, 0,
440 0, 0, 0, 0, 0, 0, 0, 0,
441 0, 0, 0, 0, 0, 0, 0, 0,
442 0, 0, 0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200449 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200450 {0x02, 0xff},
451 0x00543210,
452 0x0213,
453 {0x30216754, 0x67453210, 0x70165243, 0x07162345},
454 {0x08, 0x08, 0x08, 0x08},
455 WDQLVL_PAT,
456 {0, 0, 0, 0, 0, 0, 0, 0,
457 0, 0},
458 {0, 0, 0, 0},
459 {0, 0, 0, 0, 0, 0, 0, 0,
460 0, 0, 0, 0, 0, 0, 0, 0,
461 0, 0, 0, 0, 0, 0, 0, 0,
462 0, 0, 0, 0, 0, 0, 0, 0},
463 {0, 0, 0, 0},
464 {0, 0, 0, 0, 0, 0, 0, 0,
465 0, 0, 0, 0, 0, 0, 0, 0,
466 0, 0, 0, 0, 0, 0, 0, 0,
467 0, 0, 0, 0, 0, 0, 0, 0}
468 },
Marek Vasut80784f92019-08-07 19:02:26 +0200469 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200470 {0x02, 0xff},
471 0x00543210,
472 0x0213,
473 {0x01327654, 0x70615432, 0x54760123, 0x07162345},
474 {0x08, 0x08, 0x08, 0x08},
475 WDQLVL_PAT,
476 {0, 0, 0, 0, 0, 0, 0, 0,
477 0, 0},
478 {0, 0, 0, 0},
479 {0, 0, 0, 0, 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},
484 {0, 0, 0, 0, 0, 0, 0, 0,
485 0, 0, 0, 0, 0, 0, 0, 0,
486 0, 0, 0, 0, 0, 0, 0, 0,
487 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200488 }
489 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200490 },
491/* boardcnf[3] RENESAS Starter Kit board with M3-W/SIP(8Gbit 1rank) */
492 {
493 0x03,
494 0x01,
495 0x02c0,
496 0,
497 0x0300,
498 0x00a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200499 {
500 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200501 {0x02, 0xFF},
502 0x00543210U,
503 0x3201,
504 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
505 {0x08, 0x08, 0x08, 0x08},
506 WDQLVL_PAT,
507 {0, 0, 0, 0, 0, 0, 0, 0,
508 0, 0},
509 {0, 0, 0, 0},
510 {0, 0, 0, 0, 0, 0, 0, 0,
511 0, 0, 0, 0, 0, 0, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 0,
513 0, 0, 0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200520 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200521 {0x02, 0xFF},
522 0x00543210,
523 0x2310,
524 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
525 {0x08, 0x08, 0x08, 0x08},
526 WDQLVL_PAT,
527 {0, 0, 0, 0, 0, 0, 0, 0,
528 0, 0},
529 {0, 0, 0, 0},
530 {0, 0, 0, 0, 0, 0, 0, 0,
531 0, 0, 0, 0, 0, 0, 0, 0,
532 0, 0, 0, 0, 0, 0, 0, 0,
533 0, 0, 0, 0, 0, 0, 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}
Marek Vasut80784f92019-08-07 19:02:26 +0200539 }
540 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200541 },
542/* boardcnf[4] RENESAS SALVATOR-M(1rank) board with H3 Ver.1.x/SoC */
543 {
544 0x0f,
545 0x00,
546 0x2c0,
547 -320,
548 0x300,
549 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200550 {
551 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200552 {0x02, 0xff},
553 0x00315024,
554 0x3120,
555 {0x30671254, 0x26541037, 0x17054623, 0x12307645},
556 {0x08, 0x08, 0x08, 0x08},
557 WDQLVL_PAT,
558 {0, 0, 0, 0, 0, 0, 0, 0,
559 0, 0},
560 {0, 0, 0, 0},
561 {0, 0, 0, 0, 0, 0, 0, 0,
562 0, 0, 0, 0, 0, 0, 0, 0,
563 0, 0, 0, 0, 0, 0, 0, 0,
564 0, 0, 0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200571 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200572 {0x02, 0xff},
573 0x00025143,
574 0x3210,
575 {0x70613542, 0x16245307, 0x30712645, 0x21706354},
576 {0x08, 0x08, 0x08, 0x08},
577 WDQLVL_PAT,
578 {0, 0, 0, 0, 0, 0, 0, 0,
579 0, 0},
580 {0, 0, 0, 0},
581 {0, 0, 0, 0, 0, 0, 0, 0,
582 0, 0, 0, 0, 0, 0, 0, 0,
583 0, 0, 0, 0, 0, 0, 0, 0,
584 0, 0, 0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200591 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200592 {0x02, 0xff},
593 0x00523104,
594 0x2301,
595 {0x70613542, 0x16245307, 0x30712645, 0x21706354},
596 {0x08, 0x08, 0x08, 0x08},
597 WDQLVL_PAT,
598 {0, 0, 0, 0, 0, 0, 0, 0,
599 0, 0},
600 {0, 0, 0, 0},
601 {0, 0, 0, 0, 0, 0, 0, 0,
602 0, 0, 0, 0, 0, 0, 0, 0,
603 0, 0, 0, 0, 0, 0, 0, 0,
604 0, 0, 0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200611 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200612 {0x02, 0xff},
613 0x00153402,
614 0x2031,
615 {0x30671254, 0x26541037, 0x17054623, 0x12307645},
616 {0x08, 0x08, 0x08, 0x08},
617 WDQLVL_PAT,
618 {0, 0, 0, 0, 0, 0, 0, 0,
619 0, 0},
620 {0, 0, 0, 0},
621 {0, 0, 0, 0, 0, 0, 0, 0,
622 0, 0, 0, 0, 0, 0, 0, 0,
623 0, 0, 0, 0, 0, 0, 0, 0,
624 0, 0, 0, 0, 0, 0, 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}
Marek Vasut80784f92019-08-07 19:02:26 +0200630 }
631 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200632 },
633/* boardcnf[5] RENESAS KRIEK-1rank board with M3-W/SoC */
634 {
635 0x03,
636 0x01,
637 0x2c0,
638 0,
639 0x300,
640 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200641 {
642 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200643 {0x02, 0xff},
644 0x00345201,
645 0x3201,
646 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
647 {0x08, 0x08, 0x08, 0x08},
648 WDQLVL_PAT,
649 {0, 0, 0, 0, 0, 0, 0, 0,
650 0, 0},
651 {0, 0, 0, 0},
652 {0, 0, 0, 0, 0, 0, 0, 0,
653 0, 0, 0, 0, 0, 0, 0, 0,
654 0, 0, 0, 0, 0, 0, 0, 0,
655 0, 0, 0, 0, 0, 0, 0, 0},
656 {0, 0, 0, 0},
657 {0, 0, 0, 0, 0, 0, 0, 0,
658 0, 0, 0, 0, 0, 0, 0, 0,
659 0, 0, 0, 0, 0, 0, 0, 0,
660 0, 0, 0, 0, 0, 0, 0, 0}
661 },
Marek Vasut80784f92019-08-07 19:02:26 +0200662 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200663 {0x02, 0xff},
664 0x00302154,
665 0x2310,
666 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
667 {0x08, 0x08, 0x08, 0x08},
668 WDQLVL_PAT,
669 {0, 0, 0, 0, 0, 0, 0, 0,
670 0, 0},
671 {0, 0, 0, 0},
672 {0, 0, 0, 0, 0, 0, 0, 0,
673 0, 0, 0, 0, 0, 0, 0, 0,
674 0, 0, 0, 0, 0, 0, 0, 0,
675 0, 0, 0, 0, 0, 0, 0, 0},
676 {0, 0, 0, 0},
677 {0, 0, 0, 0, 0, 0, 0, 0,
678 0, 0, 0, 0, 0, 0, 0, 0,
679 0, 0, 0, 0, 0, 0, 0, 0,
680 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200681 }
682 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200683 },
684/* boardcnf[6] RENESAS SALVATOR-X board with H3 Ver.1.x/SIP(8Gbit 2rank) */
685 {
686 0x0f,
687 0x00,
688 0x300,
689 -320,
690 0x300,
691 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200692 {
693 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200694 {0x02, 0x02},
695 0x00543210,
696 0x3210,
697 {0x20741365, 0x34256107, 0x57460321, 0x70614532},
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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200713 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200714 {0x02, 0x02},
715 0x00543210,
716 0x3102,
717 {0x23547610, 0x34526107, 0x67452310, 0x32106754},
718 {0x08, 0x08, 0x08, 0x08},
719 WDQLVL_PAT,
720 {0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0},
722 {0, 0, 0, 0},
723 {0, 0, 0, 0, 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},
728 {0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200733 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200734 {0x02, 0x02},
735 0x00543210,
736 0x0213,
737 {0x30216754, 0x67453210, 0x70165243, 0x07162345},
738 {0x08, 0x08, 0x08, 0x08},
739 WDQLVL_PAT,
740 {0, 0, 0, 0, 0, 0, 0, 0,
741 0, 0},
742 {0, 0, 0, 0},
743 {0, 0, 0, 0, 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},
748 {0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200753 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200754 {0x02, 0x02},
755 0x00543210,
756 0x0213,
757 {0x01327654, 0x70615432, 0x54760123, 0x07162345},
758 {0x08, 0x08, 0x08, 0x08},
759 WDQLVL_PAT,
760 {0, 0, 0, 0, 0, 0, 0, 0,
761 0, 0},
762 {0, 0, 0, 0},
763 {0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 0, 0, 0},
767 {0, 0, 0, 0},
768 {0, 0, 0, 0, 0, 0, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 0,
770 0, 0, 0, 0, 0, 0, 0, 0,
771 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200772 }
773 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200774 },
Marek Vasut6ad74c32019-08-08 16:34:22 +0200775/*
776 * boardcnf[7] RENESAS SALVATOR-X board with
777 * H3 Ver.2.0 or later/SIP(8Gbit 1rank)
778 */
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200779 {
780 0x0f,
781 0x01,
782 0x300,
783 0,
784 0x300,
785 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200786 {
787 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200788 {0x02, 0xff},
789 0x00543210,
790 0x2310,
791 {0x70631425, 0x34527016, 0x43527610, 0x32104567},
792 {0x08, 0x08, 0x08, 0x08},
793 WDQLVL_PAT,
794 {0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0},
796 {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, 0, 0, 0, 0,
800 0, 0, 0, 0, 0, 0, 0, 0},
801 {0, 0, 0, 0},
802 {0, 0, 0, 0, 0, 0, 0, 0,
803 0, 0, 0, 0, 0, 0, 0, 0,
804 0, 0, 0, 0, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0}
806 },
Marek Vasut80784f92019-08-07 19:02:26 +0200807 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200808 {0x02, 0xff},
809 0x00105432,
810 0x3210,
811 {0x43256107, 0x07162354, 0x10234567, 0x01235467},
812 {0x08, 0x08, 0x08, 0x08},
813 WDQLVL_PAT,
814 {0, 0, 0, 0, 0, 0, 0, 0,
815 0, 0},
816 {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, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 0},
821 {0, 0, 0, 0},
822 {0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0,
825 0, 0, 0, 0, 0, 0, 0, 0}
826 },
Marek Vasut80784f92019-08-07 19:02:26 +0200827 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200828 {0x02, 0xff},
829 0x00543210,
830 0x2301,
831 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
832 {0x08, 0x08, 0x08, 0x08},
833 WDQLVL_PAT,
834 {0, 0, 0, 0, 0, 0, 0, 0,
835 0, 0},
836 {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, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0},
841 {0, 0, 0, 0},
842 {0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 0, 0, 0, 0, 0, 0}
846 },
Marek Vasut80784f92019-08-07 19:02:26 +0200847 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200848 {0x02, 0xff},
849 0x00543210,
850 0x2301,
851 {0x12034765, 0x23105467, 0x23017645, 0x32106745},
852 {0x08, 0x08, 0x08, 0x08},
853 WDQLVL_PAT,
854 {0, 0, 0, 0, 0, 0, 0, 0,
855 0, 0},
856 {0, 0, 0, 0},
857 {0, 0, 0, 0, 0, 0, 0, 0,
858 0, 0, 0, 0, 0, 0, 0, 0,
859 0, 0, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 0},
861 {0, 0, 0, 0},
862 {0, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 0, 0, 0, 0, 0, 0, 0,
865 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200866 }
867 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200868 },
Marek Vasut6ad74c32019-08-08 16:34:22 +0200869/*
870 * boardcnf[8] RENESAS SALVATOR-X board with
871 * H3 Ver.2.0 or later/SIP(8Gbit 2rank)
872 */
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200873 {
874#if RCAR_DRAM_CHANNEL == 5
875 0x05,
876#else
877 0x0f,
878#endif
879 0x01,
880 0x300,
881 0,
882 0x300,
883 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200884 {
885 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200886 {0x02, 0x02},
887 0x00543210,
888 0x2310,
889 {0x70631425, 0x34527016, 0x43527610, 0x32104567},
890 {0x08, 0x08, 0x08, 0x08},
891 WDQLVL_PAT,
892 {0, 0, 0, 0, 0, 0, 0, 0,
893 0, 0},
894 {0, 0, 0, 0},
895 {0, 0, 0, 0, 0, 0, 0, 0,
896 0, 0, 0, 0, 0, 0, 0, 0,
897 0, 0, 0, 0, 0, 0, 0, 0,
898 0, 0, 0, 0, 0, 0, 0, 0},
899 {0, 0, 0, 0},
900 {0, 0, 0, 0, 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 },
905#if ((RCAR_DRAM_CHANNEL == 5) && (RCAR_DRAM_SPLIT == 2))
Marek Vasut80784f92019-08-07 19:02:26 +0200906 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200907 {0x02, 0x02},
908 0x00543210,
909 0x2301,
910 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
911 {0x08, 0x08, 0x08, 0x08},
912 WDQLVL_PAT,
913 {0, 0, 0, 0, 0, 0, 0, 0,
914 0, 0},
915 {0, 0, 0, 0},
916 {0, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 0, 0,
919 0, 0, 0, 0, 0, 0, 0, 0},
920 {0, 0, 0, 0},
921 {0, 0, 0, 0, 0, 0, 0, 0,
922 0, 0, 0, 0, 0, 0, 0, 0,
923 0, 0, 0, 0, 0, 0, 0, 0,
924 0, 0, 0, 0, 0, 0, 0, 0}
925 },
926#else
Marek Vasut80784f92019-08-07 19:02:26 +0200927 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200928 {0x02, 0x02},
929 0x00105432,
930 0x3210,
931 {0x43256107, 0x07162354, 0x10234567, 0x01235467},
932 {0x08, 0x08, 0x08, 0x08},
933 WDQLVL_PAT,
934 {0, 0, 0, 0, 0, 0, 0, 0,
935 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 {0, 0, 0, 0},
942 {0, 0, 0, 0, 0, 0, 0, 0,
943 0, 0, 0, 0, 0, 0, 0, 0,
944 0, 0, 0, 0, 0, 0, 0, 0,
945 0, 0, 0, 0, 0, 0, 0, 0}
946 },
947#endif
Marek Vasut80784f92019-08-07 19:02:26 +0200948 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200949 {0x02, 0x02},
950 0x00543210,
951 0x2301,
952 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
953 {0x08, 0x08, 0x08, 0x08},
954 WDQLVL_PAT,
955 {0, 0, 0, 0, 0, 0, 0, 0,
956 0, 0},
957 {0, 0, 0, 0},
958 {0, 0, 0, 0, 0, 0, 0, 0,
959 0, 0, 0, 0, 0, 0, 0, 0,
960 0, 0, 0, 0, 0, 0, 0, 0,
961 0, 0, 0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200968 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200969 {0x02, 0x02},
970 0x00543210,
971 0x2301,
972 {0x12034765, 0x23105467, 0x23017645, 0x32106745},
973 {0x08, 0x08, 0x08, 0x08},
974 WDQLVL_PAT,
975 {0, 0, 0, 0, 0, 0, 0, 0,
976 0, 0},
977 {0, 0, 0, 0},
978 {0, 0, 0, 0, 0, 0, 0, 0,
979 0, 0, 0, 0, 0, 0, 0, 0,
980 0, 0, 0, 0, 0, 0, 0, 0,
981 0, 0, 0, 0, 0, 0, 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}
Marek Vasut80784f92019-08-07 19:02:26 +0200987 }
988 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200989 },
990/* boardcnf[9] RENESAS SALVATOR-MS(1rank) board with H3 Ver.2.0 or later/SoC */
991 {
992 0x0f,
993 0x01,
994 0x300,
995 0,
996 0x300,
997 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200998 {
999 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001000 {0x02, 0xff},
1001 0x00543210,
1002 0x3210,
1003 {0x27645310, 0x75346210, 0x53467210, 0x23674510},
1004 {0x08, 0x08, 0x08, 0x08},
1005 WDQLVL_PAT,
1006 {0, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0},
1008 {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 0, 0, 0, 0, 0, 0, 0, 0},
1013 {0, 0, 0, 0},
1014 {0, 0, 0, 0, 0, 0, 0, 0,
1015 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 0, 0, 0, 0, 0, 0,
1017 0, 0, 0, 0, 0, 0, 0, 0}
1018 },
Marek Vasut80784f92019-08-07 19:02:26 +02001019 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001020 {0x02, 0xff},
1021 0x00543210,
1022 0x2301,
1023 {0x23764510, 0x43257610, 0x43752610, 0x37652401},
1024 {0x08, 0x08, 0x08, 0x08},
1025 WDQLVL_PAT,
1026 {-128, -128, -128, -128, -128, -128, 0, 0,
1027 0, 0},
1028 {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 0, 0, 0, 0, 0, 0, 0, 0},
1033 {0, 0, 0, 0},
1034 {0, 0, 0, 0, 0, 0, 0, 0,
1035 0, 0, 0, 0, 0, 0, 0, 0,
1036 0, 0, 0, 0, 0, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 0, 0}
1038 },
Marek Vasut80784f92019-08-07 19:02:26 +02001039 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001040 {0x02, 0xff},
1041 0x00452103,
1042 0x3210,
1043 {0x32764510, 0x43257610, 0x43752610, 0x26573401},
1044 {0x08, 0x08, 0x08, 0x08},
1045 WDQLVL_PAT,
1046 {0, 0, 0, 0, 0, 0, 0, 0,
1047 0, 0},
1048 {0, 0, 0, 0},
1049 {0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, 0, 0,
1052 0, 0, 0, 0, 0, 0, 0, 0},
1053 {0, 0, 0, 0},
1054 {0, 0, 0, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, 0, 0, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, 0,
1057 0, 0, 0, 0, 0, 0, 0, 0}
1058 },
Marek Vasut80784f92019-08-07 19:02:26 +02001059 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001060 {0x02, 0xff},
1061 0x00520413,
1062 0x2301,
1063 {0x47652301, 0x75346210, 0x53467210, 0x32674501},
1064 {0x08, 0x08, 0x08, 0x08},
1065 WDQLVL_PAT,
1066 {30, 30, 30, 30, 30, 30, 30, 30,
1067 30, 30},
1068 {0, 0, 0, 0},
1069 {0, 0, 0, 0, 0, 0, 0, 0,
1070 0, 0, 0, 0, 0, 0, 0, 0,
1071 0, 0, 0, 0, 0, 0, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0},
1073 {0, 0, 0, 0},
1074 {0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0, 0, 0, 0, 0, 0, 0,
1076 0, 0, 0, 0, 0, 0, 0, 0,
1077 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001078 }
1079 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001080 },
1081/* boardcnf[10] RENESAS Kriek(2rank) board with M3-N/SoC */
1082 {
1083 0x01,
1084 0x01,
1085 0x300,
1086 0,
1087 0x300,
1088 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001089 {
1090 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001091 {0x02, 0x02},
1092 0x00345201,
1093 0x3201,
1094 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
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}
Marek Vasut80784f92019-08-07 19:02:26 +02001109 }
1110 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001111 },
1112/* boardcnf[11] RENESAS SALVATOR-X board with M3-N/SIP(8Gbit 2rank) */
1113 {
1114 0x01,
1115 0x01,
1116 0x300,
1117 0,
1118 0x300,
1119 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001120 {
1121 {
Marek Vasut6c245a52018-12-12 18:06:39 +01001122#if (RCAR_DRAM_LPDDR4_MEMCONF == 2)
1123 {0x04, 0x04},
1124#else
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001125 {0x02, 0x02},
Marek Vasut6c245a52018-12-12 18:06:39 +01001126#endif
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001127 0x00342501,
1128 0x3201,
1129 {0x10672534, 0x43257106, 0x34527601, 0x71605243},
1130 {0x08, 0x08, 0x08, 0x08},
1131 WDQLVL_PAT,
1132 {0, 0, 0, 0, 0, 0, 0, 0,
1133 0, 0},
1134 {0, 0, 0, 0},
1135 {0, 0, 0, 0, 0, 0, 0, 0,
1136 0, 0, 0, 0, 0, 0, 0, 0,
1137 0, 0, 0, 0, 0, 0, 0, 0,
1138 0, 0, 0, 0, 0, 0, 0, 0},
1139 {0, 0, 0, 0},
1140 {0, 0, 0, 0, 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}
Marek Vasut80784f92019-08-07 19:02:26 +02001144 }
1145 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001146 },
1147/* boardcnf[12] RENESAS CONDOR board with V3H/SoC */
1148 {
1149 0x01,
1150 0x1,
1151 0x300,
1152 0,
1153 0x300,
1154 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001155 {
1156 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001157 {0x02, 0x02},
1158 0x00501342,
1159 0x3201,
1160 {0x70562134, 0x34526071, 0x23147506, 0x12430567},
1161 {0x08, 0x08, 0x08, 0x08},
1162 WDQLVL_PAT,
1163 {0, 0, 0, 0, 0, 0, 0, 0,
1164 0, 0},
1165 {0, 0, 0, 0},
1166 {0, 0, 0, 0, 0, 0, 0, 0,
1167 0, 0, 0, 0, 0, 0, 0, 0,
1168 0, 0, 0, 0, 0, 0, 0, 0,
1169 0, 0, 0, 0, 0, 0, 0, 0},
1170 {0, 0, 0, 0},
1171 {0, 0, 0, 0, 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}
Marek Vasut80784f92019-08-07 19:02:26 +02001175 }
1176 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001177 },
1178/* boardcnf[13] RENESAS KRIEK board with PM3/SoC */
1179 {
1180 0x05,
1181 0x00,
1182 0x2c0,
1183 -320,
1184 0x300,
1185 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001186 {
1187 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001188 {0x02, 0x02},
1189 0x00345201,
1190 0x3201,
1191 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1192 {0x08, 0x08, 0x08, 0x08},
1193 WDQLVL_PAT,
1194 {0, 0, 0, 0, 0, 0, 0, 0,
1195 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 {0, 0, 0, 0},
1202 {0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, 0, 0, 0, 0, 0, 0, 0,
1205 0, 0, 0, 0, 0, 0, 0, 0}
1206 },
Marek Vasut80784f92019-08-07 19:02:26 +02001207 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001208 {0x02, 0x02},
1209 0x00302154,
1210 0x2310,
1211 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1212 {0x08, 0x08, 0x08, 0x08},
1213 WDQLVL_PAT,
1214 {0, 0, 0, 0, 0, 0, 0, 0,
1215 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 {0, 0, 0, 0},
1222 {0, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, 0, 0, 0, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 0, 0, 0, 0, 0}
1226 },
Marek Vasut80784f92019-08-07 19:02:26 +02001227 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001228 {0x02, 0x02},
1229 0x00302154,
1230 0x2310,
1231 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1232 {0x08, 0x08, 0x08, 0x08},
1233 WDQLVL_PAT,
1234 {0, 0, 0, 0, 0, 0, 0, 0,
1235 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 {0, 0, 0, 0},
1242 {0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0}
1246 },
Marek Vasut80784f92019-08-07 19:02:26 +02001247 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001248 {0xff, 0xff},
1249 0,
1250 0,
1251 {0, 0, 0, 0},
1252 {0, 0, 0, 0},
1253 WDQLVL_PAT,
1254 {0, 0, 0, 0, 0, 0, 0, 0,
1255 0, 0},
1256 {0, 0, 0, 0},
1257 {0, 0, 0, 0, 0, 0, 0, 0,
1258 0, 0, 0, 0, 0, 0, 0, 0,
1259 0, 0, 0, 0, 0, 0, 0, 0,
1260 0, 0, 0, 0, 0, 0, 0, 0},
1261 {0, 0, 0, 0},
1262 {0, 0, 0, 0, 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}
Marek Vasut80784f92019-08-07 19:02:26 +02001266 }
1267 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001268 },
1269/* boardcnf[14] SALVATOR-X board with H3 Ver.2.0 or later/SIP(16Gbit 1rank) */
1270 {
1271#if RCAR_DRAM_CHANNEL == 5
1272 0x05,
1273#else
1274 0x0f,
1275#endif
1276 0x01,
1277 0x300,
1278 0,
1279 0x300,
1280 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001281 {
1282 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001283 {0x04, 0xff},
1284 0x00543210,
1285 0x2310,
1286 {0x70631425, 0x34527016, 0x43527610, 0x32104567},
1287 {0x08, 0x08, 0x08, 0x08},
1288 WDQLVL_PAT,
1289 {0, 0, 0, 0, 0, 0, 0, 0,
1290 0, 0},
1291 {0, 0, 0, 0},
1292 {0, 0, 0, 0, 0, 0, 0, 0,
1293 0, 0, 0, 0, 0, 0, 0, 0,
1294 0, 0, 0, 0, 0, 0, 0, 0,
1295 0, 0, 0, 0, 0, 0, 0, 0},
1296 {0, 0, 0, 0},
1297 {0, 0, 0, 0, 0, 0, 0, 0,
1298 0, 0, 0, 0, 0, 0, 0, 0,
1299 0, 0, 0, 0, 0, 0, 0, 0,
1300 0, 0, 0, 0, 0, 0, 0, 0}
1301 },
1302#if ((RCAR_DRAM_CHANNEL == 5) && (RCAR_DRAM_SPLIT == 2))
Marek Vasut80784f92019-08-07 19:02:26 +02001303 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001304 {0x04, 0xff},
1305 0x00543210,
1306 0x2301,
1307 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
1308 {0x08, 0x08, 0x08, 0x08},
1309 WDQLVL_PAT,
1310 {0, 0, 0, 0, 0, 0, 0, 0,
1311 0, 0},
1312 {0, 0, 0, 0},
1313 {0, 0, 0, 0, 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},
1318 {0, 0, 0, 0, 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 },
1323#else
Marek Vasut80784f92019-08-07 19:02:26 +02001324 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001325 {0x04, 0xff},
1326 0x00105432,
1327 0x3210,
1328 {0x43256107, 0x07162354, 0x10234567, 0x01235467},
1329 {0x08, 0x08, 0x08, 0x08},
1330 WDQLVL_PAT,
1331 {0, 0, 0, 0, 0, 0, 0, 0,
1332 0, 0},
1333 {0, 0, 0, 0},
1334 {0, 0, 0, 0, 0, 0, 0, 0,
1335 0, 0, 0, 0, 0, 0, 0, 0,
1336 0, 0, 0, 0, 0, 0, 0, 0,
1337 0, 0, 0, 0, 0, 0, 0, 0},
1338 {0, 0, 0, 0},
1339 {0, 0, 0, 0, 0, 0, 0, 0,
1340 0, 0, 0, 0, 0, 0, 0, 0,
1341 0, 0, 0, 0, 0, 0, 0, 0,
1342 0, 0, 0, 0, 0, 0, 0, 0}
1343 },
1344#endif
Marek Vasut80784f92019-08-07 19:02:26 +02001345 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001346 {0x04, 0xff},
1347 0x00543210,
1348 0x2301,
1349 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
1350 {0x08, 0x08, 0x08, 0x08},
1351 WDQLVL_PAT,
1352 {0, 0, 0, 0, 0, 0, 0, 0,
1353 0, 0},
1354 {0, 0, 0, 0},
1355 {0, 0, 0, 0, 0, 0, 0, 0,
1356 0, 0, 0, 0, 0, 0, 0, 0,
1357 0, 0, 0, 0, 0, 0, 0, 0,
1358 0, 0, 0, 0, 0, 0, 0, 0},
1359 {0, 0, 0, 0},
1360 {0, 0, 0, 0, 0, 0, 0, 0,
1361 0, 0, 0, 0, 0, 0, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0, 0, 0, 0, 0, 0, 0}
1364 },
Marek Vasut80784f92019-08-07 19:02:26 +02001365 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001366 {0x04, 0xff},
1367 0x00543210,
1368 0x2301,
1369 {0x12034765, 0x23105467, 0x23017645, 0x32106745},
1370 {0x08, 0x08, 0x08, 0x08},
1371 WDQLVL_PAT,
1372 {0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0},
1374 {0, 0, 0, 0},
1375 {0, 0, 0, 0, 0, 0, 0, 0,
1376 0, 0, 0, 0, 0, 0, 0, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0,
1378 0, 0, 0, 0, 0, 0, 0, 0},
1379 {0, 0, 0, 0},
1380 {0, 0, 0, 0, 0, 0, 0, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 0, 0, 0, 0,
1383 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001384 }
1385 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001386 },
1387/* boardcnf[15] RENESAS KRIEK board with H3N */
1388 {
1389 0x05,
1390 0x01,
1391 0x300,
1392 0,
1393 0x300,
1394 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001395 {
1396 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001397 {0x02, 0x02},
1398 0x00345201,
1399 0x3201,
1400 {0x01672543, 0x45367012, 0x45632107, 0x60715234},
1401 {0x08, 0x08, 0x08, 0x08},
1402 WDQLVL_PAT,
1403 {0, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0},
1405 {0, 0, 0, 0},
1406 {0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 0, 0, 0, 0, 0,
1408 0, 0, 0, 0, 0, 0, 0, 0,
1409 0, 0, 0, 0, 0, 0, 0, 0},
1410 {0, 0, 0, 0},
1411 {0, 0, 0, 0, 0, 0, 0, 0,
1412 0, 0, 0, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 0, 0, 0,
1414 0, 0, 0, 0, 0, 0, 0, 0}
1415 },
Marek Vasut80784f92019-08-07 19:02:26 +02001416 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001417 {0x02, 0x02},
1418 0x00302154,
1419 0x2310,
1420 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1421 {0x08, 0x08, 0x08, 0x08},
1422 WDQLVL_PAT,
1423 {0, 0, 0, 0, 0, 0, 0, 0,
1424 0, 0},
1425 {0, 0, 0, 0},
1426 {0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 0, 0, 0, 0, 0,
1428 0, 0, 0, 0, 0, 0, 0, 0,
1429 0, 0, 0, 0, 0, 0, 0, 0},
1430 {0, 0, 0, 0},
1431 {0, 0, 0, 0, 0, 0, 0, 0,
1432 0, 0, 0, 0, 0, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0}
1435 },
Marek Vasut80784f92019-08-07 19:02:26 +02001436 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001437 {0x02, 0x02},
1438 0x00302154,
1439 0x2310,
1440 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1441 {0x08, 0x08, 0x08, 0x08},
1442 WDQLVL_PAT,
1443 {0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 0},
1445 {0, 0, 0, 0},
1446 {0, 0, 0, 0, 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},
1451 {0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +02001456 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001457 {0xff, 0xff},
1458 0,
1459 0,
1460 {0, 0, 0, 0},
1461 {0, 0, 0, 0},
1462 WDQLVL_PAT,
1463 {0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0},
1465 {0, 0, 0, 0},
1466 {0, 0, 0, 0, 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},
1471 {0, 0, 0, 0, 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}
Marek Vasut80784f92019-08-07 19:02:26 +02001475 }
1476 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001477 },
1478/* boardcnf[16] RENESAS KRIEK-P2P board with M3-W/SoC */
1479 {
1480 0x03,
1481 0x01,
1482 0x0320,
1483 0,
1484 0x0300,
1485 0x00a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001486 {
1487 {
Marek Vasut6c245a52018-12-12 18:06:39 +01001488 {0x04, 0x04},
1489 0x520314FFFF523041,
1490 0x3201,
1491 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1492 {0x08, 0x08, 0x08, 0x08},
1493 WDQLVL_PAT,
1494 {0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0},
1496 {0, 0, 0, 0},
1497 {0, 0, 0, 0, 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},
1502 {0, 0, 0, 0, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +02001507 {
Marek Vasut6c245a52018-12-12 18:06:39 +01001508 {0x04, 0x04},
1509 0x314250FFFF312405,
1510 0x2310,
1511 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1512 {0x08, 0x08, 0x08, 0x08},
1513 WDQLVL_PAT,
1514 {0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0},
1516 {0, 0, 0, 0},
1517 {0, 0, 0, 0, 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},
1522 {0, 0, 0, 0, 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}
Marek Vasut80784f92019-08-07 19:02:26 +02001526 }
1527 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001528 },
1529/* boardcnf[17] RENESAS KRIEK-P2P board with M3-N/SoC */
1530 {
1531 0x01,
1532 0x01,
1533 0x0300,
1534 0,
1535 0x0300,
1536 0x00a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001537 {
1538 {
Marek Vasut6c245a52018-12-12 18:06:39 +01001539 {0x04, 0x04},
1540 0x520314FFFF523041,
1541 0x3201,
1542 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1543 {0x08, 0x08, 0x08, 0x08},
1544 WDQLVL_PAT,
1545 {0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0},
1547 {0, 0, 0, 0},
1548 {0, 0, 0, 0, 0, 0, 0, 0,
1549 0, 0, 0, 0, 0, 0, 0, 0,
1550 0, 0, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0},
1552 {0, 0, 0, 0},
1553 {0, 0, 0, 0, 0, 0, 0, 0,
1554 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 0, 0, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001557 }
1558 }
Marek Vasut3af20052019-02-25 14:57:08 +01001559 },
1560/* boardcnf[18] RENESAS SALVATOR-X board with M3-W/SIP(16Gbit 2rank) */
1561 {
1562 0x03,
1563 0x01,
1564 0x02c0,
1565 0,
1566 0x0300,
1567 0x00a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001568 {
1569 {
Marek Vasut3af20052019-02-25 14:57:08 +01001570 {0x04, 0x04},
1571 0x00543210,
1572 0x3201,
1573 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
1574 {0x08, 0x08, 0x08, 0x08},
1575 WDQLVL_PAT,
1576 {0, 0, 0, 0, 0, 0, 0, 0,
1577 0, 0},
1578 {0, 0, 0, 0},
1579 {0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 0,
1582 0, 0, 0, 0, 0, 0, 0, 0},
1583 {0, 0, 0, 0},
1584 {0, 0, 0, 0, 0, 0, 0, 0,
1585 0, 0, 0, 0, 0, 0, 0, 0,
1586 0, 0, 0, 0, 0, 0, 0, 0,
1587 0, 0, 0, 0, 0, 0, 0, 0}
1588 },
Marek Vasut80784f92019-08-07 19:02:26 +02001589 {
Marek Vasut3af20052019-02-25 14:57:08 +01001590 {0x04, 0x04},
1591 0x00543210,
1592 0x2310,
1593 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
1594 {0x08, 0x08, 0x08, 0x08},
1595 WDQLVL_PAT,
1596 {0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0},
1598 {0, 0, 0, 0},
1599 {0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 0, 0,
1601 0, 0, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0},
1603 {0, 0, 0, 0},
1604 {0, 0, 0, 0, 0, 0, 0, 0,
1605 0, 0, 0, 0, 0, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0,
1607 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001608 }
1609 }
Marek Vasut3af20052019-02-25 14:57:08 +01001610 },
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001611/* boardcnf[19] RENESAS SALVATOR-X board with M3-W/SIP(16Gbit 1rank) */
Marek Vasut80784f92019-08-07 19:02:26 +02001612 {
1613 0x03,
1614 0x01,
1615 0x02c0,
1616 0,
1617 0x0300,
1618 0x00a0,
1619 {
1620 {
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001621 {0x04, 0xff},
1622 0x00543210,
1623 0x3201,
1624 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
1625 {0x08, 0x08, 0x08, 0x08},
1626 WDQLVL_PAT,
1627 {0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0},
1629 {0, 0, 0, 0},
1630 {0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 0, 0, 0,
1633 0, 0, 0, 0, 0, 0, 0, 0},
1634 {0, 0, 0, 0},
1635 {0, 0, 0, 0, 0, 0, 0, 0,
1636 0, 0, 0, 0, 0, 0, 0, 0,
1637 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, 0, 0, 0, 0, 0, 0, 0}
1639 },
Marek Vasut80784f92019-08-07 19:02:26 +02001640 {
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001641 {0x04, 0xff},
1642 0x00543210,
1643 0x2310,
1644 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
1645 {0x08, 0x08, 0x08, 0x08},
1646 WDQLVL_PAT,
1647 {0, 0, 0, 0, 0, 0, 0, 0,
1648 0, 0},
1649 {0, 0, 0, 0},
1650 {0, 0, 0, 0, 0, 0, 0, 0,
1651 0, 0, 0, 0, 0, 0, 0, 0,
1652 0, 0, 0, 0, 0, 0, 0, 0,
1653 0, 0, 0, 0, 0, 0, 0, 0},
1654 {0, 0, 0, 0},
1655 {0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001659 }
1660 }
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001661 },
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001662/* boardcnf[20] RENESAS KRIEK 16Gbit/2rank/2ch board with M3-W/SoC */
Marek Vasut80784f92019-08-07 19:02:26 +02001663 {
1664 0x03,
1665 0x01,
1666 0x02c0,
1667 0,
1668 0x0300,
1669 0x00a0,
1670 {
1671 {
1672 {0x04, 0x04},
1673 0x00345201,
1674 0x3201,
1675 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1676 {0x08, 0x08, 0x08, 0x08},
1677 WDQLVL_PAT,
1678 {0, 0, 0, 0, 0, 0, 0, 0,
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001679 0, 0},
Marek Vasut80784f92019-08-07 19:02:26 +02001680 {0, 0, 0, 0},
1681 {0, 0, 0, 0, 0, 0, 0, 0,
1682 0, 0, 0, 0, 0, 0, 0, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0},
1685 {0, 0, 0, 0},
1686 {0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0,
1688 0, 0, 0, 0, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0}
1690 },
1691 {
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001692 {0x04, 0x04},
Marek Vasut80784f92019-08-07 19:02:26 +02001693 0x00302154,
1694 0x2310,
1695 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1696 {0x08, 0x08, 0x08, 0x08},
1697 WDQLVL_PAT,
1698 {0, 0, 0, 0, 0, 0, 0, 0,
1699 0, 0},
1700 {0, 0, 0, 0},
1701 {0, 0, 0, 0, 0, 0, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 0, 0, 0, 0, 0, 0, 0},
1705 {0, 0, 0, 0},
1706 {0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 0, 0}
1710 }
1711 }
1712 },
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001713/* boardcnf[21] RENESAS KRIEK 16Gbit/1rank/2ch board with M3-W/SoC */
Marek Vasut80784f92019-08-07 19:02:26 +02001714 {
1715 0x03,
1716 0x01,
1717 0x02c0,
1718 0,
1719 0x0300,
1720 0x00a0,
1721 {
1722 {
1723 {0x04, 0xff},
1724 0x00345201,
1725 0x3201,
1726 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1727 {0x08, 0x08, 0x08, 0x08},
1728 WDQLVL_PAT,
1729 {0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0},
1731 {0, 0, 0, 0},
1732 {0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0},
1736 {0, 0, 0, 0},
1737 {0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0}
1741 },
1742 {
1743 {0x04, 0xff},
1744 0x00302154,
1745 0x2310,
1746 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1747 {0x08, 0x08, 0x08, 0x08},
1748 WDQLVL_PAT,
1749 {0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0},
1751 {0, 0, 0, 0},
1752 {0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0},
1756 {0, 0, 0, 0},
1757 {0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0}
1761 }
1762 }
1763 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001764};
Lad Prabhakar9f2b5792021-03-10 14:30:20 +00001765#endif /* RZG_SOC == 1 */
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001766
Marek Vasut80784f92019-08-07 19:02:26 +02001767void boardcnf_get_brd_clk(uint32_t brd, uint32_t *clk, uint32_t *div)
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001768{
1769 uint32_t md;
1770
Marek Vasut38dc7562019-08-07 19:17:42 +02001771 if ((prr_product == PRR_PRODUCT_H3) && (prr_cut == PRR_PRODUCT_10)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001772 *clk = 50;
1773 *div = 3;
1774 } else {
1775 md = (mmio_read_32(RST_MODEMR) >> 13) & 0x3;
1776 switch (md) {
1777 case 0x0:
1778 *clk = 50;
1779 *div = 3;
1780 break;
1781 case 0x1:
1782 *clk = 60;
1783 *div = 3;
1784 break;
1785 case 0x2:
1786 *clk = 75;
1787 *div = 3;
1788 break;
1789 case 0x3:
1790 *clk = 100;
1791 *div = 3;
1792 break;
1793 }
1794 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001795 (void)brd;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001796}
1797
Marek Vasut80784f92019-08-07 19:02:26 +02001798void boardcnf_get_ddr_mbps(uint32_t brd, uint32_t *mbps, uint32_t *div)
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001799{
1800 uint32_t md;
1801
Chiaki Fujiiaea02862019-09-18 13:10:00 +09001802 if (prr_product == PRR_PRODUCT_V3H) {
1803 md = (mmio_read_32(RST_MODEMR) >> 19) & 0x1;
1804 md = (md | (md << 1)) & 0x3; /* 0 or 3 */
1805 } else {
1806 md = (mmio_read_32(RST_MODEMR) >> 17) & 0x5;
1807 md = (md | (md >> 1)) & 0x3;
1808 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001809 switch (md) {
1810 case 0x0:
1811 *mbps = 3200;
1812 *div = 1;
1813 break;
1814 case 0x1:
1815 *mbps = 2800;
1816 *div = 1;
1817 break;
1818 case 0x2:
1819 *mbps = 2400;
1820 *div = 1;
1821 break;
1822 case 0x3:
1823 *mbps = 1600;
1824 *div = 1;
1825 break;
1826 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001827 (void)brd;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001828}
1829
1830#define _def_REFPERIOD 1890
1831
1832#define M3_SAMPLE_TT_A84 0xB866CC10, 0x3B250421
1833#define M3_SAMPLE_TT_A85 0xB866CC10, 0x3AA50421
1834#define M3_SAMPLE_TT_A86 0xB866CC10, 0x3AA48421
1835#define M3_SAMPLE_FF_B45 0xB866CC10, 0x3AB00C21
1836#define M3_SAMPLE_FF_B49 0xB866CC10, 0x39B10C21
1837#define M3_SAMPLE_FF_B56 0xB866CC10, 0x3AAF8C21
1838#define M3_SAMPLE_SS_E24 0xB866CC10, 0x3BA39421
1839#define M3_SAMPLE_SS_E28 0xB866CC10, 0x3C231421
1840#define M3_SAMPLE_SS_E32 0xB866CC10, 0x3C241421
1841
Marek Vasut38dc7562019-08-07 19:17:42 +02001842static const uint32_t termcode_by_sample[20][3] = {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001843 {M3_SAMPLE_TT_A84, 0x000158D5},
1844 {M3_SAMPLE_TT_A85, 0x00015955},
1845 {M3_SAMPLE_TT_A86, 0x00015955},
1846 {M3_SAMPLE_FF_B45, 0x00015690},
1847 {M3_SAMPLE_FF_B49, 0x00015753},
1848 {M3_SAMPLE_FF_B56, 0x00015793},
1849 {M3_SAMPLE_SS_E24, 0x00015996},
1850 {M3_SAMPLE_SS_E28, 0x000159D7},
1851 {M3_SAMPLE_SS_E32, 0x00015997},
1852 {0xFFFFFFFF, 0xFFFFFFFF, 0x0001554F}
1853};
1854
1855#ifdef BOARD_JUDGE_AUTO
1856/*
1857 * SAMPLE board detect function
1858 */
Marek Vasut80784f92019-08-07 19:02:26 +02001859#define PFC_PMMR 0xE6060000U
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001860#define PFC_PUEN5 0xE6060414U
1861#define PFC_PUEN6 0xE6060418U
1862#define PFC_PUD5 0xE6060454U
1863#define PFC_PUD6 0xE6060458U
1864#define GPIO_INDT5 0xE605500CU
Marek Vasut80784f92019-08-07 19:02:26 +02001865#define GPIO_GPSR6 0xE6060118U
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001866
Lad Prabhakar9f2b5792021-03-10 14:30:20 +00001867#if (RCAR_GEN3_ULCB == 0) && (RZG_SOC == 0)
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001868static void pfc_write_and_poll(uint32_t a, uint32_t v)
1869{
1870 mmio_write_32(PFC_PMMR, ~v);
1871 v = ~mmio_read_32(PFC_PMMR);
1872 mmio_write_32(a, v);
Marek Vasut6a131772019-08-07 19:56:09 +02001873 while (v != mmio_read_32(a))
1874 ;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001875 dsb_sev();
1876}
1877#endif
1878
1879#ifndef RCAR_GEN3_ULCB
1880#define RCAR_GEN3_ULCB 0
1881#endif
1882
Lad Prabhakar9f2b5792021-03-10 14:30:20 +00001883#if (RCAR_GEN3_ULCB == 0) && (RZG_SOC == 0) /* non Starter Kit */
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001884
1885static uint32_t opencheck_SSI_WS6(void)
1886{
1887 uint32_t dataL, down, up;
1888 uint32_t gpsr6_bak;
1889 uint32_t puen5_bak;
1890 uint32_t pud5_bak;
1891
1892 gpsr6_bak = mmio_read_32(GPIO_GPSR6);
1893 puen5_bak = mmio_read_32(PFC_PUEN5);
1894 pud5_bak = mmio_read_32(PFC_PUD5);
1895 dsb_sev();
1896
Marek Vasuta75f8262019-07-14 08:55:27 +02001897 dataL = (gpsr6_bak & ~BIT(15));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001898 pfc_write_and_poll(GPIO_GPSR6, dataL);
1899
1900 /* Pull-Up/Down Enable (PUEN5[22]=1) */
1901 dataL = puen5_bak;
Marek Vasuta75f8262019-07-14 08:55:27 +02001902 dataL |= (BIT(22));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001903 pfc_write_and_poll(PFC_PUEN5, dataL);
1904
1905 /* Pull-Down-Enable (PUD5[22]=0, PUEN5[22]=1) */
1906 dataL = pud5_bak;
Marek Vasuta75f8262019-07-14 08:55:27 +02001907 dataL &= ~(BIT(22));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001908 pfc_write_and_poll(PFC_PUD5, dataL);
1909 /* GPSR6[15]=SSI_WS6 */
1910 rcar_micro_delay(10);
1911 down = (mmio_read_32(GPIO_INDT6) >> 15) & 0x1;
1912 dsb_sev();
1913
1914 /* Pull-Up-Enable (PUD5[22]=1, PUEN5[22]=1) */
1915 dataL = pud5_bak;
Marek Vasuta75f8262019-07-14 08:55:27 +02001916 dataL |= (BIT(22));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001917 pfc_write_and_poll(PFC_PUD5, dataL);
1918
1919 /* GPSR6[15]=SSI_WS6 */
1920 rcar_micro_delay(10);
1921 up = (mmio_read_32(GPIO_INDT6) >> 15) & 0x1;
1922
1923 dsb_sev();
1924
1925 pfc_write_and_poll(GPIO_GPSR6, gpsr6_bak);
1926 pfc_write_and_poll(PFC_PUEN5, puen5_bak);
1927 pfc_write_and_poll(PFC_PUD5, pud5_bak);
1928
1929 if (down == up) {
1930 /* Same = Connect */
1931 return 0;
1932 }
Marek Vasut6a131772019-08-07 19:56:09 +02001933
1934 /* Diff = Open */
1935 return 1;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001936}
1937
1938#endif
1939
Lad Prabhakar9f2b5792021-03-10 14:30:20 +00001940#if (RZG_SOC == 1)
1941#define LPDDR4_2RANK (0x01U << 25U)
1942
1943static uint32_t rzg2_board_judge(void)
1944{
1945 uint32_t brd;
1946
1947 switch (prr_product) {
1948 case PRR_PRODUCT_M3:
1949 brd = 1U;
1950 if ((mmio_read_32(PRR) & PRR_CUT_MASK) != RCAR_M3_CUT_VER11) {
1951 if ((mmio_read_32(GPIO_INDT5) & LPDDR4_2RANK) == 0U) {
1952 brd = 0U;
1953 }
1954 }
1955 break;
Lad Prabhakar9c86f412021-04-19 16:59:55 +01001956 case PRR_PRODUCT_H3:
1957 brd = 2U;
1958 break;
Lad Prabhakared2e11d2021-04-19 17:03:56 +01001959 case PRR_PRODUCT_M3N:
1960 brd = 3U;
1961 break;
Lad Prabhakar9f2b5792021-03-10 14:30:20 +00001962 default:
1963 brd = 99U;
1964 }
1965
1966 return brd;
1967}
1968#endif /* RZG_SOC == 1 */
1969
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001970static uint32_t _board_judge(void)
1971{
1972 uint32_t brd;
Lad Prabhakar9f2b5792021-03-10 14:30:20 +00001973
1974#if (RZG_SOC == 1)
1975 brd = rzg2_board_judge();
1976#else
Marek Vasut80784f92019-08-07 19:02:26 +02001977#if (RCAR_GEN3_ULCB == 1)
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001978 /* Starter Kit */
Marek Vasut38dc7562019-08-07 19:17:42 +02001979 if (prr_product == PRR_PRODUCT_H3) {
1980 if (prr_cut <= PRR_PRODUCT_11) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001981 /* RENESAS Starter Kit(H3 Ver.1.x/SIP) board */
1982 brd = 2;
1983 } else {
1984 /* RENESAS Starter Kit(H3 Ver.2.0 or later/SIP) board */
1985#if (RCAR_DRAM_LPDDR4_MEMCONF == 0)
1986 brd = 7;
1987#else
1988 brd = 8;
1989#endif
1990 }
Marek Vasut38dc7562019-08-07 19:17:42 +02001991 } else if (prr_product == PRR_PRODUCT_M3) {
Chiaki Fujii8c2f32d2019-12-06 19:33:34 +09001992 if (prr_cut >= PRR_PRODUCT_30) {
1993 /* RENESAS Starter Kit (M3-W Ver.3.0/SIP) */
1994 brd = 18;
1995 } else {
1996 /* RENESAS Starter Kit(M3-W/SIP 8Gbit 1rank) board */
1997 brd = 3;
1998 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001999 } else {
2000 /* RENESAS Starter Kit(M3-N/SIP) board */
2001 brd = 11;
2002 }
2003#else
2004 uint32_t usb2_ovc_open;
2005
2006 usb2_ovc_open = opencheck_SSI_WS6();
2007
Marek Vasut80784f92019-08-07 19:02:26 +02002008 /* RENESAS Eva-board */
Marek Vasut6c245a52018-12-12 18:06:39 +01002009 brd = 99;
Marek Vasut38dc7562019-08-07 19:17:42 +02002010 if (prr_product == PRR_PRODUCT_V3H) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002011 /* RENESAS Condor board */
2012 brd = 12;
2013 } else if (usb2_ovc_open) {
Marek Vasut38dc7562019-08-07 19:17:42 +02002014 if (prr_product == PRR_PRODUCT_M3N) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002015 /* RENESAS Kriek board with M3-N */
2016 brd = 10;
Marek Vasut38dc7562019-08-07 19:17:42 +02002017 } else if (prr_product == PRR_PRODUCT_M3) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002018 /* RENESAS Kriek board with M3-W */
2019 brd = 1;
Marek Vasut6a131772019-08-07 19:56:09 +02002020 } else if ((prr_product == PRR_PRODUCT_H3) &&
2021 (prr_cut <= PRR_PRODUCT_11)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002022 /* RENESAS Kriek board with PM3 */
2023 brd = 13;
Marek Vasut6a131772019-08-07 19:56:09 +02002024 } else if ((prr_product == PRR_PRODUCT_H3) &&
2025 (prr_cut > PRR_PRODUCT_20)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002026 /* RENESAS Kriek board with H3N */
2027 brd = 15;
2028 }
2029 } else {
Marek Vasut38dc7562019-08-07 19:17:42 +02002030 if (prr_product == PRR_PRODUCT_H3) {
2031 if (prr_cut <= PRR_PRODUCT_11) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002032 /* RENESAS SALVATOR-X (H3 Ver.1.x/SIP) */
2033 brd = 2;
Marek Vasut38dc7562019-08-07 19:17:42 +02002034 } else if (prr_cut < PRR_PRODUCT_30) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002035 /* RENESAS SALVATOR-X (H3 Ver.2.0/SIP) */
2036 brd = 7; // 8Gbit/1rank
2037 } else {
2038 /* RENESAS SALVATOR-X (H3 Ver.3.0/SIP) */
2039#if (RCAR_DRAM_LPDDR4_MEMCONF == 0)
2040 brd = 7;
2041#else
2042 brd = 8;
2043#endif
2044 }
Marek Vasut38dc7562019-08-07 19:17:42 +02002045 } else if (prr_product == PRR_PRODUCT_M3N) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002046 /* RENESAS SALVATOR-X (M3-N/SIP) */
2047 brd = 11;
Marek Vasut6ad74c32019-08-08 16:34:22 +02002048 } else if ((prr_product == PRR_PRODUCT_M3) &&
2049 (prr_cut <= PRR_PRODUCT_20)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002050 /* RENESAS SALVATOR-X (M3-W/SIP) */
2051 brd = 0;
Marek Vasut6ad74c32019-08-08 16:34:22 +02002052 } else if ((prr_product == PRR_PRODUCT_M3) &&
2053 (prr_cut < PRR_PRODUCT_30)) {
Chiaki Fujii59263ee2019-05-17 10:45:02 +09002054 /* RENESAS SALVATOR-X (M3-W Ver.1.x/SIP) */
Chiaki Fujii61aa8032019-03-01 20:28:55 +09002055 brd = 19;
Marek Vasut6ad74c32019-08-08 16:34:22 +02002056 } else if ((prr_product == PRR_PRODUCT_M3) &&
2057 (prr_cut >= PRR_PRODUCT_30)) {
Marek Vasut3af20052019-02-25 14:57:08 +01002058 /* RENESAS SALVATOR-X (M3-W ver.3.0/SIP) */
2059 brd = 18;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002060 }
2061 }
2062#endif
Lad Prabhakar9f2b5792021-03-10 14:30:20 +00002063#endif /* RZG_SOC == 1 */
Marek Vasut6c245a52018-12-12 18:06:39 +01002064
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02002065 return brd;
2066}
2067#endif