blob: f8caade2734ce7559d06798d1109296a2503d79a [file] [log] [blame]
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001/*
Marek Vasut6ad74c32019-08-08 16:34:22 +02002 * Copyright (c) 2015-2019, Renesas Electronics Corporation.
3 * All rights reserved.
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02004 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
Chiaki Fujii59263ee2019-05-17 10:45:02 +09008#define BOARDNUM 22
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02009#define BOARD_JUDGE_AUTO
10
Marek Vasut6c245a52018-12-12 18:06:39 +010011#ifdef BOARD_JUDGE_AUTO
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020012static uint32_t _board_judge(void);
13
14static uint32_t boardcnf_get_brd_type(void)
15{
16 return _board_judge();
17}
Marek Vasut6c245a52018-12-12 18:06:39 +010018#else
19static uint32_t boardcnf_get_brd_type(void)
20{
Marek Vasut6a131772019-08-07 19:56:09 +020021 return 1;
Marek Vasut6c245a52018-12-12 18:06:39 +010022}
23#endif
24
25#define DDR_FAST_INIT
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020026
27struct _boardcnf_ch {
28 uint8_t ddr_density[CS_CNT];
Marek Vasut6c245a52018-12-12 18:06:39 +010029 uint64_t ca_swap;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020030 uint16_t dqs_swap;
31 uint32_t dq_swap[SLICE_CNT];
32 uint8_t dm_swap[SLICE_CNT];
33 uint16_t wdqlvl_patt[16];
Marek Vasut6c245a52018-12-12 18:06:39 +010034 int8_t cacs_adj[16];
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +020035 int8_t dm_adj_w[SLICE_CNT];
36 int8_t dq_adj_w[SLICE_CNT * 8];
37 int8_t dm_adj_r[SLICE_CNT];
38 int8_t dq_adj_r[SLICE_CNT * 8];
39};
40
41struct _boardcnf {
42 uint8_t phyvalid;
43 uint8_t dbi_en;
44 uint16_t cacs_dly;
45 int16_t cacs_dly_adj;
46 uint16_t dqdm_dly_w;
47 uint16_t dqdm_dly_r;
48 struct _boardcnf_ch ch[DRAM_CH_CNT];
49};
50
51#define WDQLVL_PAT {\
52 0x00AA,\
53 0x0055,\
54 0x00AA,\
55 0x0155,\
56 0x01CC,\
57 0x0133,\
58 0x00CC,\
59 0x0033,\
60 0x00F0,\
61 0x010F,\
62 0x01F0,\
63 0x010F,\
64 0x00F0,\
65 0x00F0,\
66 0x000F,\
67 0x010F}
68
69static const struct _boardcnf boardcnfs[BOARDNUM] = {
70 {
71/* boardcnf[0] RENESAS SALVATOR-X board with M3-W/SIP */
72 .phyvalid = 0x03,
73 .dbi_en = 0x01,
74 .cacs_dly = 0x02c0,
75 .cacs_dly_adj = 0,
76 .dqdm_dly_w = 0x0300,
77 .dqdm_dly_r = 0x00a0,
78 .ch = {
79 {
80 {0x02, 0x02},
81 0x00543210U,
82 0x3201U,
83 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
84 {0x08, 0x08, 0x08, 0x08},
85 WDQLVL_PAT,
86 {0, 0, 0, 0, 0, 0, 0, 0,
87 0, 0},
88 {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, 0, 0, 0, 0},
93 {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 0, 0, 0, 0, 0, 0, 0, 0}
98 },
99
100 {
101 {0x02, 0x02},
102 0x00543210,
103 0x2310,
104 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
105 {0x08, 0x08, 0x08, 0x08},
106 WDQLVL_PAT,
107 {0, 0, 0, 0, 0, 0, 0, 0,
108 0, 0},
109 {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, 0, 0, 0, 0},
114 {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 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200119 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200120 }
121 },
122/* boardcnf[1] RENESAS KRIEK board with M3-W/SoC */
123 {
124 0x03,
125 0x01,
126 0x2c0,
127 0,
128 0x300,
129 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200130 {
131 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200132 {0x02, 0x02},
133 0x00345201,
134 0x3201,
135 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
136 {0x08, 0x08, 0x08, 0x08},
137 WDQLVL_PAT,
138 {0, 0, 0, 0, 0, 0, 0, 0,
139 0, 0},
140 {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, 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 },
Marek Vasut80784f92019-08-07 19:02:26 +0200151 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200152 {0x02, 0x02},
153 0x00302154,
154 0x2310,
155 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
156 {0x08, 0x08, 0x08, 0x08},
157 WDQLVL_PAT,
158 {0, 0, 0, 0, 0, 0, 0, 0,
159 0, 0},
160 {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, 0, 0, 0, 0},
165 {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, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200170 }
171 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200172 },
173/* boardcnf[2] RENESAS SALVATOR-X board with H3 Ver.1.x/SIP(8Gbit 1rank) */
174 {
175 0x0f,
176 0x00,
177 0x300,
178 -320,
179 0x300,
180 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200181 {
182 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200183 {0x02, 0xff},
184 0x00543210,
185 0x3210,
186 {0x20741365, 0x34256107, 0x57460321, 0x70614532},
187 {0x08, 0x08, 0x08, 0x08},
188 WDQLVL_PAT,
189 {0, 0, 0, 0, 0, 0, 0, 0,
190 0, 0},
191 {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, 0, 0, 0, 0},
196 {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 0, 0, 0, 0, 0, 0, 0, 0}
201 },
Marek Vasut80784f92019-08-07 19:02:26 +0200202 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200203 {0x02, 0xff},
204 0x00543210,
205 0x3102,
206 {0x23547610, 0x34526107, 0x67452310, 0x32106754},
207 {0x08, 0x08, 0x08, 0x08},
208 WDQLVL_PAT,
209 {0, 0, 0, 0, 0, 0, 0, 0,
210 0, 0},
211 {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, 0, 0, 0, 0},
216 {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 0, 0, 0, 0, 0, 0, 0, 0}
221 },
Marek Vasut80784f92019-08-07 19:02:26 +0200222 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200223 {0x02, 0xff},
224 0x00543210,
225 0x0213,
226 {0x30216754, 0x67453210, 0x70165243, 0x07162345},
227 {0x08, 0x08, 0x08, 0x08},
228 WDQLVL_PAT,
229 {0, 0, 0, 0, 0, 0, 0, 0,
230 0, 0},
231 {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, 0, 0, 0, 0},
236 {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 0, 0, 0, 0, 0, 0, 0, 0}
241 },
Marek Vasut80784f92019-08-07 19:02:26 +0200242 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200243 {0x02, 0xff},
244 0x00543210,
245 0x0213,
246 {0x01327654, 0x70615432, 0x54760123, 0x07162345},
247 {0x08, 0x08, 0x08, 0x08},
248 WDQLVL_PAT,
249 {0, 0, 0, 0, 0, 0, 0, 0,
250 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}
Marek Vasut80784f92019-08-07 19:02:26 +0200261 }
262 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200263 },
264/* boardcnf[3] RENESAS Starter Kit board with M3-W/SIP(8Gbit 1rank) */
265 {
266 0x03,
267 0x01,
268 0x02c0,
269 0,
270 0x0300,
271 0x00a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200272 {
273 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200274 {0x02, 0xFF},
275 0x00543210U,
276 0x3201,
277 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
278 {0x08, 0x08, 0x08, 0x08},
279 WDQLVL_PAT,
280 {0, 0, 0, 0, 0, 0, 0, 0,
281 0, 0},
282 {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, 0, 0, 0, 0},
287 {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 0, 0, 0, 0, 0, 0, 0, 0}
292 },
Marek Vasut80784f92019-08-07 19:02:26 +0200293 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200294 {0x02, 0xFF},
295 0x00543210,
296 0x2310,
297 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
298 {0x08, 0x08, 0x08, 0x08},
299 WDQLVL_PAT,
300 {0, 0, 0, 0, 0, 0, 0, 0,
301 0, 0},
302 {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, 0, 0, 0, 0},
307 {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 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200312 }
313 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200314 },
315/* boardcnf[4] RENESAS SALVATOR-M(1rank) board with H3 Ver.1.x/SoC */
316 {
317 0x0f,
318 0x00,
319 0x2c0,
320 -320,
321 0x300,
322 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200323 {
324 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200325 {0x02, 0xff},
326 0x00315024,
327 0x3120,
328 {0x30671254, 0x26541037, 0x17054623, 0x12307645},
329 {0x08, 0x08, 0x08, 0x08},
330 WDQLVL_PAT,
331 {0, 0, 0, 0, 0, 0, 0, 0,
332 0, 0},
333 {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, 0, 0, 0, 0},
338 {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 0, 0, 0, 0, 0, 0, 0, 0}
343 },
Marek Vasut80784f92019-08-07 19:02:26 +0200344 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200345 {0x02, 0xff},
346 0x00025143,
347 0x3210,
348 {0x70613542, 0x16245307, 0x30712645, 0x21706354},
349 {0x08, 0x08, 0x08, 0x08},
350 WDQLVL_PAT,
351 {0, 0, 0, 0, 0, 0, 0, 0,
352 0, 0},
353 {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, 0, 0, 0, 0},
358 {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 0, 0, 0, 0, 0, 0, 0, 0}
363 },
Marek Vasut80784f92019-08-07 19:02:26 +0200364 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200365 {0x02, 0xff},
366 0x00523104,
367 0x2301,
368 {0x70613542, 0x16245307, 0x30712645, 0x21706354},
369 {0x08, 0x08, 0x08, 0x08},
370 WDQLVL_PAT,
371 {0, 0, 0, 0, 0, 0, 0, 0,
372 0, 0},
373 {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, 0, 0, 0, 0},
378 {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 0, 0, 0, 0, 0, 0, 0, 0}
383 },
Marek Vasut80784f92019-08-07 19:02:26 +0200384 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200385 {0x02, 0xff},
386 0x00153402,
387 0x2031,
388 {0x30671254, 0x26541037, 0x17054623, 0x12307645},
389 {0x08, 0x08, 0x08, 0x08},
390 WDQLVL_PAT,
391 {0, 0, 0, 0, 0, 0, 0, 0,
392 0, 0},
393 {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, 0, 0, 0, 0},
398 {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 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200403 }
404 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200405 },
406/* boardcnf[5] RENESAS KRIEK-1rank board with M3-W/SoC */
407 {
408 0x03,
409 0x01,
410 0x2c0,
411 0,
412 0x300,
413 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200414 {
415 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200416 {0x02, 0xff},
417 0x00345201,
418 0x3201,
419 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
420 {0x08, 0x08, 0x08, 0x08},
421 WDQLVL_PAT,
422 {0, 0, 0, 0, 0, 0, 0, 0,
423 0, 0},
424 {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, 0, 0, 0, 0},
429 {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 0, 0, 0, 0, 0, 0, 0, 0}
434 },
Marek Vasut80784f92019-08-07 19:02:26 +0200435 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200436 {0x02, 0xff},
437 0x00302154,
438 0x2310,
439 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
440 {0x08, 0x08, 0x08, 0x08},
441 WDQLVL_PAT,
442 {0, 0, 0, 0, 0, 0, 0, 0,
443 0, 0},
444 {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, 0, 0, 0, 0},
449 {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 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200454 }
455 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200456 },
457/* boardcnf[6] RENESAS SALVATOR-X board with H3 Ver.1.x/SIP(8Gbit 2rank) */
458 {
459 0x0f,
460 0x00,
461 0x300,
462 -320,
463 0x300,
464 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200465 {
466 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200467 {0x02, 0x02},
468 0x00543210,
469 0x3210,
470 {0x20741365, 0x34256107, 0x57460321, 0x70614532},
471 {0x08, 0x08, 0x08, 0x08},
472 WDQLVL_PAT,
473 {0, 0, 0, 0, 0, 0, 0, 0,
474 0, 0},
475 {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, 0, 0, 0, 0},
480 {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 0, 0, 0, 0, 0, 0, 0, 0}
485 },
Marek Vasut80784f92019-08-07 19:02:26 +0200486 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200487 {0x02, 0x02},
488 0x00543210,
489 0x3102,
490 {0x23547610, 0x34526107, 0x67452310, 0x32106754},
491 {0x08, 0x08, 0x08, 0x08},
492 WDQLVL_PAT,
493 {0, 0, 0, 0, 0, 0, 0, 0,
494 0, 0},
495 {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, 0, 0, 0, 0},
500 {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 0, 0, 0, 0, 0, 0, 0, 0}
505 },
Marek Vasut80784f92019-08-07 19:02:26 +0200506 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200507 {0x02, 0x02},
508 0x00543210,
509 0x0213,
510 {0x30216754, 0x67453210, 0x70165243, 0x07162345},
511 {0x08, 0x08, 0x08, 0x08},
512 WDQLVL_PAT,
513 {0, 0, 0, 0, 0, 0, 0, 0,
514 0, 0},
515 {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, 0, 0, 0, 0},
520 {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 0, 0, 0, 0, 0, 0, 0, 0}
525 },
Marek Vasut80784f92019-08-07 19:02:26 +0200526 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200527 {0x02, 0x02},
528 0x00543210,
529 0x0213,
530 {0x01327654, 0x70615432, 0x54760123, 0x07162345},
531 {0x08, 0x08, 0x08, 0x08},
532 WDQLVL_PAT,
533 {0, 0, 0, 0, 0, 0, 0, 0,
534 0, 0},
535 {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, 0, 0, 0, 0},
540 {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 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200545 }
546 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200547 },
Marek Vasut6ad74c32019-08-08 16:34:22 +0200548/*
549 * boardcnf[7] RENESAS SALVATOR-X board with
550 * H3 Ver.2.0 or later/SIP(8Gbit 1rank)
551 */
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200552 {
553 0x0f,
554 0x01,
555 0x300,
556 0,
557 0x300,
558 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200559 {
560 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200561 {0x02, 0xff},
562 0x00543210,
563 0x2310,
564 {0x70631425, 0x34527016, 0x43527610, 0x32104567},
565 {0x08, 0x08, 0x08, 0x08},
566 WDQLVL_PAT,
567 {0, 0, 0, 0, 0, 0, 0, 0,
568 0, 0},
569 {0, 0, 0, 0},
570 {0, 0, 0, 0, 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},
575 {0, 0, 0, 0, 0, 0, 0, 0,
576 0, 0, 0, 0, 0, 0, 0, 0,
577 0, 0, 0, 0, 0, 0, 0, 0,
578 0, 0, 0, 0, 0, 0, 0, 0}
579 },
Marek Vasut80784f92019-08-07 19:02:26 +0200580 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200581 {0x02, 0xff},
582 0x00105432,
583 0x3210,
584 {0x43256107, 0x07162354, 0x10234567, 0x01235467},
585 {0x08, 0x08, 0x08, 0x08},
586 WDQLVL_PAT,
587 {0, 0, 0, 0, 0, 0, 0, 0,
588 0, 0},
589 {0, 0, 0, 0},
590 {0, 0, 0, 0, 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},
595 {0, 0, 0, 0, 0, 0, 0, 0,
596 0, 0, 0, 0, 0, 0, 0, 0,
597 0, 0, 0, 0, 0, 0, 0, 0,
598 0, 0, 0, 0, 0, 0, 0, 0}
599 },
Marek Vasut80784f92019-08-07 19:02:26 +0200600 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200601 {0x02, 0xff},
602 0x00543210,
603 0x2301,
604 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
605 {0x08, 0x08, 0x08, 0x08},
606 WDQLVL_PAT,
607 {0, 0, 0, 0, 0, 0, 0, 0,
608 0, 0},
609 {0, 0, 0, 0},
610 {0, 0, 0, 0, 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},
615 {0, 0, 0, 0, 0, 0, 0, 0,
616 0, 0, 0, 0, 0, 0, 0, 0,
617 0, 0, 0, 0, 0, 0, 0, 0,
618 0, 0, 0, 0, 0, 0, 0, 0}
619 },
Marek Vasut80784f92019-08-07 19:02:26 +0200620 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200621 {0x02, 0xff},
622 0x00543210,
623 0x2301,
624 {0x12034765, 0x23105467, 0x23017645, 0x32106745},
625 {0x08, 0x08, 0x08, 0x08},
626 WDQLVL_PAT,
627 {0, 0, 0, 0, 0, 0, 0, 0,
628 0, 0},
629 {0, 0, 0, 0},
630 {0, 0, 0, 0, 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},
635 {0, 0, 0, 0, 0, 0, 0, 0,
636 0, 0, 0, 0, 0, 0, 0, 0,
637 0, 0, 0, 0, 0, 0, 0, 0,
638 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200639 }
640 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200641 },
Marek Vasut6ad74c32019-08-08 16:34:22 +0200642/*
643 * boardcnf[8] RENESAS SALVATOR-X board with
644 * H3 Ver.2.0 or later/SIP(8Gbit 2rank)
645 */
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200646 {
647#if RCAR_DRAM_CHANNEL == 5
648 0x05,
649#else
650 0x0f,
651#endif
652 0x01,
653 0x300,
654 0,
655 0x300,
656 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200657 {
658 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200659 {0x02, 0x02},
660 0x00543210,
661 0x2310,
662 {0x70631425, 0x34527016, 0x43527610, 0x32104567},
663 {0x08, 0x08, 0x08, 0x08},
664 WDQLVL_PAT,
665 {0, 0, 0, 0, 0, 0, 0, 0,
666 0, 0},
667 {0, 0, 0, 0},
668 {0, 0, 0, 0, 0, 0, 0, 0,
669 0, 0, 0, 0, 0, 0, 0, 0,
670 0, 0, 0, 0, 0, 0, 0, 0,
671 0, 0, 0, 0, 0, 0, 0, 0},
672 {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, 0, 0, 0, 0}
677 },
678#if ((RCAR_DRAM_CHANNEL == 5) && (RCAR_DRAM_SPLIT == 2))
Marek Vasut80784f92019-08-07 19:02:26 +0200679 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200680 {0x02, 0x02},
681 0x00543210,
682 0x2301,
683 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
684 {0x08, 0x08, 0x08, 0x08},
685 WDQLVL_PAT,
686 {0, 0, 0, 0, 0, 0, 0, 0,
687 0, 0},
688 {0, 0, 0, 0},
689 {0, 0, 0, 0, 0, 0, 0, 0,
690 0, 0, 0, 0, 0, 0, 0, 0,
691 0, 0, 0, 0, 0, 0, 0, 0,
692 0, 0, 0, 0, 0, 0, 0, 0},
693 {0, 0, 0, 0},
694 {0, 0, 0, 0, 0, 0, 0, 0,
695 0, 0, 0, 0, 0, 0, 0, 0,
696 0, 0, 0, 0, 0, 0, 0, 0,
697 0, 0, 0, 0, 0, 0, 0, 0}
698 },
699#else
Marek Vasut80784f92019-08-07 19:02:26 +0200700 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200701 {0x02, 0x02},
702 0x00105432,
703 0x3210,
704 {0x43256107, 0x07162354, 0x10234567, 0x01235467},
705 {0x08, 0x08, 0x08, 0x08},
706 WDQLVL_PAT,
707 {0, 0, 0, 0, 0, 0, 0, 0,
708 0, 0},
709 {0, 0, 0, 0},
710 {0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 0,
713 0, 0, 0, 0, 0, 0, 0, 0},
714 {0, 0, 0, 0},
715 {0, 0, 0, 0, 0, 0, 0, 0,
716 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0}
719 },
720#endif
Marek Vasut80784f92019-08-07 19:02:26 +0200721 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200722 {0x02, 0x02},
723 0x00543210,
724 0x2301,
725 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
726 {0x08, 0x08, 0x08, 0x08},
727 WDQLVL_PAT,
728 {0, 0, 0, 0, 0, 0, 0, 0,
729 0, 0},
730 {0, 0, 0, 0},
731 {0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0,
734 0, 0, 0, 0, 0, 0, 0, 0},
735 {0, 0, 0, 0},
736 {0, 0, 0, 0, 0, 0, 0, 0,
737 0, 0, 0, 0, 0, 0, 0, 0,
738 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 0, 0, 0, 0, 0, 0, 0}
740 },
Marek Vasut80784f92019-08-07 19:02:26 +0200741 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200742 {0x02, 0x02},
743 0x00543210,
744 0x2301,
745 {0x12034765, 0x23105467, 0x23017645, 0x32106745},
746 {0x08, 0x08, 0x08, 0x08},
747 WDQLVL_PAT,
748 {0, 0, 0, 0, 0, 0, 0, 0,
749 0, 0},
750 {0, 0, 0, 0},
751 {0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0,
753 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0},
755 {0, 0, 0, 0},
756 {0, 0, 0, 0, 0, 0, 0, 0,
757 0, 0, 0, 0, 0, 0, 0, 0,
758 0, 0, 0, 0, 0, 0, 0, 0,
759 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200760 }
761 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200762 },
763/* boardcnf[9] RENESAS SALVATOR-MS(1rank) board with H3 Ver.2.0 or later/SoC */
764 {
765 0x0f,
766 0x01,
767 0x300,
768 0,
769 0x300,
770 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200771 {
772 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200773 {0x02, 0xff},
774 0x00543210,
775 0x3210,
776 {0x27645310, 0x75346210, 0x53467210, 0x23674510},
777 {0x08, 0x08, 0x08, 0x08},
778 WDQLVL_PAT,
779 {0, 0, 0, 0, 0, 0, 0, 0,
780 0, 0},
781 {0, 0, 0, 0},
782 {0, 0, 0, 0, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0},
786 {0, 0, 0, 0},
787 {0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0}
791 },
Marek Vasut80784f92019-08-07 19:02:26 +0200792 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200793 {0x02, 0xff},
794 0x00543210,
795 0x2301,
796 {0x23764510, 0x43257610, 0x43752610, 0x37652401},
797 {0x08, 0x08, 0x08, 0x08},
798 WDQLVL_PAT,
799 {-128, -128, -128, -128, -128, -128, 0, 0,
800 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 {0, 0, 0, 0},
807 {0, 0, 0, 0, 0, 0, 0, 0,
808 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0,
810 0, 0, 0, 0, 0, 0, 0, 0}
811 },
Marek Vasut80784f92019-08-07 19:02:26 +0200812 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200813 {0x02, 0xff},
814 0x00452103,
815 0x3210,
816 {0x32764510, 0x43257610, 0x43752610, 0x26573401},
817 {0x08, 0x08, 0x08, 0x08},
818 WDQLVL_PAT,
819 {0, 0, 0, 0, 0, 0, 0, 0,
820 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 {0, 0, 0, 0},
827 {0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0}
831 },
Marek Vasut80784f92019-08-07 19:02:26 +0200832 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200833 {0x02, 0xff},
834 0x00520413,
835 0x2301,
836 {0x47652301, 0x75346210, 0x53467210, 0x32674501},
837 {0x08, 0x08, 0x08, 0x08},
838 WDQLVL_PAT,
839 {30, 30, 30, 30, 30, 30, 30, 30,
840 30, 30},
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 {0, 0, 0, 0},
847 {0, 0, 0, 0, 0, 0, 0, 0,
848 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200851 }
852 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200853 },
854/* boardcnf[10] RENESAS Kriek(2rank) board with M3-N/SoC */
855 {
856 0x01,
857 0x01,
858 0x300,
859 0,
860 0x300,
861 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200862 {
863 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200864 {0x02, 0x02},
865 0x00345201,
866 0x3201,
867 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
868 {0x08, 0x08, 0x08, 0x08},
869 WDQLVL_PAT,
870 {0, 0, 0, 0, 0, 0, 0, 0,
871 0, 0},
872 {0, 0, 0, 0},
873 {0, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 0, 0, 0, 0,
875 0, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 0, 0, 0, 0, 0},
877 {0, 0, 0, 0},
878 {0, 0, 0, 0, 0, 0, 0, 0,
879 0, 0, 0, 0, 0, 0, 0, 0,
880 0, 0, 0, 0, 0, 0, 0, 0,
881 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200882 }
883 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200884 },
885/* boardcnf[11] RENESAS SALVATOR-X board with M3-N/SIP(8Gbit 2rank) */
886 {
887 0x01,
888 0x01,
889 0x300,
890 0,
891 0x300,
892 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200893 {
894 {
Marek Vasut6c245a52018-12-12 18:06:39 +0100895#if (RCAR_DRAM_LPDDR4_MEMCONF == 2)
896 {0x04, 0x04},
897#else
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200898 {0x02, 0x02},
Marek Vasut6c245a52018-12-12 18:06:39 +0100899#endif
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200900 0x00342501,
901 0x3201,
902 {0x10672534, 0x43257106, 0x34527601, 0x71605243},
903 {0x08, 0x08, 0x08, 0x08},
904 WDQLVL_PAT,
905 {0, 0, 0, 0, 0, 0, 0, 0,
906 0, 0},
907 {0, 0, 0, 0},
908 {0, 0, 0, 0, 0, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 0,
911 0, 0, 0, 0, 0, 0, 0, 0},
912 {0, 0, 0, 0},
913 {0, 0, 0, 0, 0, 0, 0, 0,
914 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 0, 0,
916 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200917 }
918 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200919 },
920/* boardcnf[12] RENESAS CONDOR board with V3H/SoC */
921 {
922 0x01,
923 0x1,
924 0x300,
925 0,
926 0x300,
927 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200928 {
929 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200930 {0x02, 0x02},
931 0x00501342,
932 0x3201,
933 {0x70562134, 0x34526071, 0x23147506, 0x12430567},
934 {0x08, 0x08, 0x08, 0x08},
935 WDQLVL_PAT,
936 {0, 0, 0, 0, 0, 0, 0, 0,
937 0, 0},
938 {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, 0, 0, 0, 0,
942 0, 0, 0, 0, 0, 0, 0, 0},
943 {0, 0, 0, 0},
944 {0, 0, 0, 0, 0, 0, 0, 0,
945 0, 0, 0, 0, 0, 0, 0, 0,
946 0, 0, 0, 0, 0, 0, 0, 0,
947 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +0200948 }
949 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200950 },
951/* boardcnf[13] RENESAS KRIEK board with PM3/SoC */
952 {
953 0x05,
954 0x00,
955 0x2c0,
956 -320,
957 0x300,
958 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +0200959 {
960 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200961 {0x02, 0x02},
962 0x00345201,
963 0x3201,
964 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
965 {0x08, 0x08, 0x08, 0x08},
966 WDQLVL_PAT,
967 {0, 0, 0, 0, 0, 0, 0, 0,
968 0, 0},
969 {0, 0, 0, 0},
970 {0, 0, 0, 0, 0, 0, 0, 0,
971 0, 0, 0, 0, 0, 0, 0, 0,
972 0, 0, 0, 0, 0, 0, 0, 0,
973 0, 0, 0, 0, 0, 0, 0, 0},
974 {0, 0, 0, 0},
975 {0, 0, 0, 0, 0, 0, 0, 0,
976 0, 0, 0, 0, 0, 0, 0, 0,
977 0, 0, 0, 0, 0, 0, 0, 0,
978 0, 0, 0, 0, 0, 0, 0, 0}
979 },
Marek Vasut80784f92019-08-07 19:02:26 +0200980 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +0200981 {0x02, 0x02},
982 0x00302154,
983 0x2310,
984 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
985 {0x08, 0x08, 0x08, 0x08},
986 WDQLVL_PAT,
987 {0, 0, 0, 0, 0, 0, 0, 0,
988 0, 0},
989 {0, 0, 0, 0},
990 {0, 0, 0, 0, 0, 0, 0, 0,
991 0, 0, 0, 0, 0, 0, 0, 0,
992 0, 0, 0, 0, 0, 0, 0, 0,
993 0, 0, 0, 0, 0, 0, 0, 0},
994 {0, 0, 0, 0},
995 {0, 0, 0, 0, 0, 0, 0, 0,
996 0, 0, 0, 0, 0, 0, 0, 0,
997 0, 0, 0, 0, 0, 0, 0, 0,
998 0, 0, 0, 0, 0, 0, 0, 0}
999 },
Marek Vasut80784f92019-08-07 19:02:26 +02001000 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001001 {0x02, 0x02},
1002 0x00302154,
1003 0x2310,
1004 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1005 {0x08, 0x08, 0x08, 0x08},
1006 WDQLVL_PAT,
1007 {0, 0, 0, 0, 0, 0, 0, 0,
1008 0, 0},
1009 {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, 0, 0, 0, 0},
1014 {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 0, 0, 0, 0, 0, 0, 0, 0}
1019 },
Marek Vasut80784f92019-08-07 19:02:26 +02001020 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001021 {0xff, 0xff},
1022 0,
1023 0,
1024 {0, 0, 0, 0},
1025 {0, 0, 0, 0},
1026 WDQLVL_PAT,
1027 {0, 0, 0, 0, 0, 0, 0, 0,
1028 0, 0},
1029 {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, 0, 0, 0, 0},
1034 {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 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001039 }
1040 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001041 },
1042/* boardcnf[14] SALVATOR-X board with H3 Ver.2.0 or later/SIP(16Gbit 1rank) */
1043 {
1044#if RCAR_DRAM_CHANNEL == 5
1045 0x05,
1046#else
1047 0x0f,
1048#endif
1049 0x01,
1050 0x300,
1051 0,
1052 0x300,
1053 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001054 {
1055 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001056 {0x04, 0xff},
1057 0x00543210,
1058 0x2310,
1059 {0x70631425, 0x34527016, 0x43527610, 0x32104567},
1060 {0x08, 0x08, 0x08, 0x08},
1061 WDQLVL_PAT,
1062 {0, 0, 0, 0, 0, 0, 0, 0,
1063 0, 0},
1064 {0, 0, 0, 0},
1065 {0, 0, 0, 0, 0, 0, 0, 0,
1066 0, 0, 0, 0, 0, 0, 0, 0,
1067 0, 0, 0, 0, 0, 0, 0, 0,
1068 0, 0, 0, 0, 0, 0, 0, 0},
1069 {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, 0, 0, 0, 0}
1074 },
1075#if ((RCAR_DRAM_CHANNEL == 5) && (RCAR_DRAM_SPLIT == 2))
Marek Vasut80784f92019-08-07 19:02:26 +02001076 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001077 {0x04, 0xff},
1078 0x00543210,
1079 0x2301,
1080 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
1081 {0x08, 0x08, 0x08, 0x08},
1082 WDQLVL_PAT,
1083 {0, 0, 0, 0, 0, 0, 0, 0,
1084 0, 0},
1085 {0, 0, 0, 0},
1086 {0, 0, 0, 0, 0, 0, 0, 0,
1087 0, 0, 0, 0, 0, 0, 0, 0,
1088 0, 0, 0, 0, 0, 0, 0, 0,
1089 0, 0, 0, 0, 0, 0, 0, 0},
1090 {0, 0, 0, 0},
1091 {0, 0, 0, 0, 0, 0, 0, 0,
1092 0, 0, 0, 0, 0, 0, 0, 0,
1093 0, 0, 0, 0, 0, 0, 0, 0,
1094 0, 0, 0, 0, 0, 0, 0, 0}
1095 },
1096#else
Marek Vasut80784f92019-08-07 19:02:26 +02001097 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001098 {0x04, 0xff},
1099 0x00105432,
1100 0x3210,
1101 {0x43256107, 0x07162354, 0x10234567, 0x01235467},
1102 {0x08, 0x08, 0x08, 0x08},
1103 WDQLVL_PAT,
1104 {0, 0, 0, 0, 0, 0, 0, 0,
1105 0, 0},
1106 {0, 0, 0, 0},
1107 {0, 0, 0, 0, 0, 0, 0, 0,
1108 0, 0, 0, 0, 0, 0, 0, 0,
1109 0, 0, 0, 0, 0, 0, 0, 0,
1110 0, 0, 0, 0, 0, 0, 0, 0},
1111 {0, 0, 0, 0},
1112 {0, 0, 0, 0, 0, 0, 0, 0,
1113 0, 0, 0, 0, 0, 0, 0, 0,
1114 0, 0, 0, 0, 0, 0, 0, 0,
1115 0, 0, 0, 0, 0, 0, 0, 0}
1116 },
1117#endif
Marek Vasut80784f92019-08-07 19:02:26 +02001118 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001119 {0x04, 0xff},
1120 0x00543210,
1121 0x2301,
1122 {0x01327654, 0x02316457, 0x10234567, 0x01325467},
1123 {0x08, 0x08, 0x08, 0x08},
1124 WDQLVL_PAT,
1125 {0, 0, 0, 0, 0, 0, 0, 0,
1126 0, 0},
1127 {0, 0, 0, 0},
1128 {0, 0, 0, 0, 0, 0, 0, 0,
1129 0, 0, 0, 0, 0, 0, 0, 0,
1130 0, 0, 0, 0, 0, 0, 0, 0,
1131 0, 0, 0, 0, 0, 0, 0, 0},
1132 {0, 0, 0, 0},
1133 {0, 0, 0, 0, 0, 0, 0, 0,
1134 0, 0, 0, 0, 0, 0, 0, 0,
1135 0, 0, 0, 0, 0, 0, 0, 0,
1136 0, 0, 0, 0, 0, 0, 0, 0}
1137 },
Marek Vasut80784f92019-08-07 19:02:26 +02001138 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001139 {0x04, 0xff},
1140 0x00543210,
1141 0x2301,
1142 {0x12034765, 0x23105467, 0x23017645, 0x32106745},
1143 {0x08, 0x08, 0x08, 0x08},
1144 WDQLVL_PAT,
1145 {0, 0, 0, 0, 0, 0, 0, 0,
1146 0, 0},
1147 {0, 0, 0, 0},
1148 {0, 0, 0, 0, 0, 0, 0, 0,
1149 0, 0, 0, 0, 0, 0, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 0,
1151 0, 0, 0, 0, 0, 0, 0, 0},
1152 {0, 0, 0, 0},
1153 {0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, 0, 0, 0, 0, 0,
1155 0, 0, 0, 0, 0, 0, 0, 0,
1156 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001157 }
1158 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001159 },
1160/* boardcnf[15] RENESAS KRIEK board with H3N */
1161 {
1162 0x05,
1163 0x01,
1164 0x300,
1165 0,
1166 0x300,
1167 0x0a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001168 {
1169 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001170 {0x02, 0x02},
1171 0x00345201,
1172 0x3201,
1173 {0x01672543, 0x45367012, 0x45632107, 0x60715234},
1174 {0x08, 0x08, 0x08, 0x08},
1175 WDQLVL_PAT,
1176 {0, 0, 0, 0, 0, 0, 0, 0,
1177 0, 0},
1178 {0, 0, 0, 0},
1179 {0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0},
1183 {0, 0, 0, 0},
1184 {0, 0, 0, 0, 0, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, 0, 0, 0, 0, 0, 0}
1188 },
Marek Vasut80784f92019-08-07 19:02:26 +02001189 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001190 {0x02, 0x02},
1191 0x00302154,
1192 0x2310,
1193 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1194 {0x08, 0x08, 0x08, 0x08},
1195 WDQLVL_PAT,
1196 {0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0},
1198 {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, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0},
1203 {0, 0, 0, 0},
1204 {0, 0, 0, 0, 0, 0, 0, 0,
1205 0, 0, 0, 0, 0, 0, 0, 0,
1206 0, 0, 0, 0, 0, 0, 0, 0,
1207 0, 0, 0, 0, 0, 0, 0, 0}
1208 },
Marek Vasut80784f92019-08-07 19:02:26 +02001209 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001210 {0x02, 0x02},
1211 0x00302154,
1212 0x2310,
1213 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1214 {0x08, 0x08, 0x08, 0x08},
1215 WDQLVL_PAT,
1216 {0, 0, 0, 0, 0, 0, 0, 0,
1217 0, 0},
1218 {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, 0, 0, 0, 0,
1222 0, 0, 0, 0, 0, 0, 0, 0},
1223 {0, 0, 0, 0},
1224 {0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 0, 0}
1228 },
Marek Vasut80784f92019-08-07 19:02:26 +02001229 {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001230 {0xff, 0xff},
1231 0,
1232 0,
1233 {0, 0, 0, 0},
1234 {0, 0, 0, 0},
1235 WDQLVL_PAT,
1236 {0, 0, 0, 0, 0, 0, 0, 0,
1237 0, 0},
1238 {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, 0, 0, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0},
1243 {0, 0, 0, 0},
1244 {0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001248 }
1249 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001250 },
1251/* boardcnf[16] RENESAS KRIEK-P2P board with M3-W/SoC */
1252 {
1253 0x03,
1254 0x01,
1255 0x0320,
1256 0,
1257 0x0300,
1258 0x00a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001259 {
1260 {
Marek Vasut6c245a52018-12-12 18:06:39 +01001261 {0x04, 0x04},
1262 0x520314FFFF523041,
1263 0x3201,
1264 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1265 {0x08, 0x08, 0x08, 0x08},
1266 WDQLVL_PAT,
1267 {0, 0, 0, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 0, 0, 0, 0},
1269 {0, 0, 0, 0},
1270 {0, 0, 0, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 0, 0, 0,
1272 0, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, 0, 0, 0, 0, 0, 0},
1274 {0, 0, 0, 0},
1275 {0, 0, 0, 0, 0, 0, 0, 0,
1276 0, 0, 0, 0, 0, 0, 0, 0,
1277 0, 0, 0, 0, 0, 0, 0, 0,
1278 0, 0, 0, 0, 0, 0, 0, 0}
1279 },
Marek Vasut80784f92019-08-07 19:02:26 +02001280 {
Marek Vasut6c245a52018-12-12 18:06:39 +01001281 {0x04, 0x04},
1282 0x314250FFFF312405,
1283 0x2310,
1284 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1285 {0x08, 0x08, 0x08, 0x08},
1286 WDQLVL_PAT,
1287 {0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 0, 0, 0, 0, 0, 0},
1289 {0, 0, 0, 0},
1290 {0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 0, 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},
1295 {0, 0, 0, 0, 0, 0, 0, 0,
1296 0, 0, 0, 0, 0, 0, 0, 0,
1297 0, 0, 0, 0, 0, 0, 0, 0,
1298 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001299 }
1300 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001301 },
1302/* boardcnf[17] RENESAS KRIEK-P2P board with M3-N/SoC */
1303 {
1304 0x01,
1305 0x01,
1306 0x0300,
1307 0,
1308 0x0300,
1309 0x00a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001310 {
1311 {
Marek Vasut6c245a52018-12-12 18:06:39 +01001312 {0x04, 0x04},
1313 0x520314FFFF523041,
1314 0x3201,
1315 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1316 {0x08, 0x08, 0x08, 0x08},
1317 WDQLVL_PAT,
1318 {0, 0, 0, 0, 0, 0, 0, 0,
1319 0, 0, 0, 0, 0, 0, 0, 0},
1320 {0, 0, 0, 0},
1321 {0, 0, 0, 0, 0, 0, 0, 0,
1322 0, 0, 0, 0, 0, 0, 0, 0,
1323 0, 0, 0, 0, 0, 0, 0, 0,
1324 0, 0, 0, 0, 0, 0, 0, 0},
1325 {0, 0, 0, 0},
1326 {0, 0, 0, 0, 0, 0, 0, 0,
1327 0, 0, 0, 0, 0, 0, 0, 0,
1328 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001330 }
1331 }
Marek Vasut3af20052019-02-25 14:57:08 +01001332 },
1333/* boardcnf[18] RENESAS SALVATOR-X board with M3-W/SIP(16Gbit 2rank) */
1334 {
1335 0x03,
1336 0x01,
1337 0x02c0,
1338 0,
1339 0x0300,
1340 0x00a0,
Marek Vasut80784f92019-08-07 19:02:26 +02001341 {
1342 {
Marek Vasut3af20052019-02-25 14:57:08 +01001343 {0x04, 0x04},
1344 0x00543210,
1345 0x3201,
1346 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
1347 {0x08, 0x08, 0x08, 0x08},
1348 WDQLVL_PAT,
1349 {0, 0, 0, 0, 0, 0, 0, 0,
1350 0, 0},
1351 {0, 0, 0, 0},
1352 {0, 0, 0, 0, 0, 0, 0, 0,
1353 0, 0, 0, 0, 0, 0, 0, 0,
1354 0, 0, 0, 0, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0},
1356 {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, 0, 0, 0, 0,
1360 0, 0, 0, 0, 0, 0, 0, 0}
1361 },
Marek Vasut80784f92019-08-07 19:02:26 +02001362 {
Marek Vasut3af20052019-02-25 14:57:08 +01001363 {0x04, 0x04},
1364 0x00543210,
1365 0x2310,
1366 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
1367 {0x08, 0x08, 0x08, 0x08},
1368 WDQLVL_PAT,
1369 {0, 0, 0, 0, 0, 0, 0, 0,
1370 0, 0},
1371 {0, 0, 0, 0},
1372 {0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 0, 0, 0, 0, 0, 0,
1374 0, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 0, 0, 0, 0, 0, 0},
1376 {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, 0, 0, 0, 0,
1380 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001381 }
1382 }
Marek Vasut3af20052019-02-25 14:57:08 +01001383 },
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001384/* boardcnf[19] RENESAS SALVATOR-X board with M3-W/SIP(16Gbit 1rank) */
Marek Vasut80784f92019-08-07 19:02:26 +02001385 {
1386 0x03,
1387 0x01,
1388 0x02c0,
1389 0,
1390 0x0300,
1391 0x00a0,
1392 {
1393 {
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001394 {0x04, 0xff},
1395 0x00543210,
1396 0x3201,
1397 {0x70612543, 0x43251670, 0x45326170, 0x10672534},
1398 {0x08, 0x08, 0x08, 0x08},
1399 WDQLVL_PAT,
1400 {0, 0, 0, 0, 0, 0, 0, 0,
1401 0, 0},
1402 {0, 0, 0, 0},
1403 {0, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0,
1405 0, 0, 0, 0, 0, 0, 0, 0,
1406 0, 0, 0, 0, 0, 0, 0, 0},
1407 {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, 0, 0, 0, 0,
1411 0, 0, 0, 0, 0, 0, 0, 0}
1412 },
Marek Vasut80784f92019-08-07 19:02:26 +02001413 {
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001414 {0x04, 0xff},
1415 0x00543210,
1416 0x2310,
1417 {0x01327654, 0x34526107, 0x35421670, 0x70615324},
1418 {0x08, 0x08, 0x08, 0x08},
1419 WDQLVL_PAT,
1420 {0, 0, 0, 0, 0, 0, 0, 0,
1421 0, 0},
1422 {0, 0, 0, 0},
1423 {0, 0, 0, 0, 0, 0, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0,
1426 0, 0, 0, 0, 0, 0, 0, 0},
1427 {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, 0, 0, 0, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0}
Marek Vasut80784f92019-08-07 19:02:26 +02001432 }
1433 }
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001434 },
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001435/* boardcnf[20] RENESAS KRIEK 16Gbit/2rank/2ch board with M3-W/SoC */
Marek Vasut80784f92019-08-07 19:02:26 +02001436 {
1437 0x03,
1438 0x01,
1439 0x02c0,
1440 0,
1441 0x0300,
1442 0x00a0,
1443 {
1444 {
1445 {0x04, 0x04},
1446 0x00345201,
1447 0x3201,
1448 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1449 {0x08, 0x08, 0x08, 0x08},
1450 WDQLVL_PAT,
1451 {0, 0, 0, 0, 0, 0, 0, 0,
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001452 0, 0},
Marek Vasut80784f92019-08-07 19:02:26 +02001453 {0, 0, 0, 0},
1454 {0, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 0, 0, 0, 0, 0,
1456 0, 0, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 0, 0, 0, 0},
1458 {0, 0, 0, 0},
1459 {0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0}
1463 },
1464 {
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001465 {0x04, 0x04},
Marek Vasut80784f92019-08-07 19:02:26 +02001466 0x00302154,
1467 0x2310,
1468 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1469 {0x08, 0x08, 0x08, 0x08},
1470 WDQLVL_PAT,
1471 {0, 0, 0, 0, 0, 0, 0, 0,
1472 0, 0},
1473 {0, 0, 0, 0},
1474 {0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 0},
1478 {0, 0, 0, 0},
1479 {0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0}
1483 }
1484 }
1485 },
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001486/* boardcnf[21] RENESAS KRIEK 16Gbit/1rank/2ch board with M3-W/SoC */
Marek Vasut80784f92019-08-07 19:02:26 +02001487 {
1488 0x03,
1489 0x01,
1490 0x02c0,
1491 0,
1492 0x0300,
1493 0x00a0,
1494 {
1495 {
1496 {0x04, 0xff},
1497 0x00345201,
1498 0x3201,
1499 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1500 {0x08, 0x08, 0x08, 0x08},
1501 WDQLVL_PAT,
1502 {0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0},
1504 {0, 0, 0, 0},
1505 {0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0,
1508 0, 0, 0, 0, 0, 0, 0, 0},
1509 {0, 0, 0, 0},
1510 {0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 0, 0, 0, 0, 0,
1513 0, 0, 0, 0, 0, 0, 0, 0}
1514 },
1515 {
1516 {0x04, 0xff},
1517 0x00302154,
1518 0x2310,
1519 {0x01672543, 0x45361207, 0x45632107, 0x60715234},
1520 {0x08, 0x08, 0x08, 0x08},
1521 WDQLVL_PAT,
1522 {0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 0},
1524 {0, 0, 0, 0},
1525 {0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 0, 0, 0, 0, 0, 0, 0,
1528 0, 0, 0, 0, 0, 0, 0, 0},
1529 {0, 0, 0, 0},
1530 {0, 0, 0, 0, 0, 0, 0, 0,
1531 0, 0, 0, 0, 0, 0, 0, 0,
1532 0, 0, 0, 0, 0, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 0, 0}
1534 }
1535 }
1536 }
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001537};
1538
Marek Vasut80784f92019-08-07 19:02:26 +02001539void boardcnf_get_brd_clk(uint32_t brd, uint32_t *clk, uint32_t *div)
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001540{
1541 uint32_t md;
1542
Marek Vasut38dc7562019-08-07 19:17:42 +02001543 if ((prr_product == PRR_PRODUCT_H3) && (prr_cut == PRR_PRODUCT_10)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001544 *clk = 50;
1545 *div = 3;
1546 } else {
1547 md = (mmio_read_32(RST_MODEMR) >> 13) & 0x3;
1548 switch (md) {
1549 case 0x0:
1550 *clk = 50;
1551 *div = 3;
1552 break;
1553 case 0x1:
1554 *clk = 60;
1555 *div = 3;
1556 break;
1557 case 0x2:
1558 *clk = 75;
1559 *div = 3;
1560 break;
1561 case 0x3:
1562 *clk = 100;
1563 *div = 3;
1564 break;
1565 }
1566 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001567 (void)brd;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001568}
1569
Marek Vasut80784f92019-08-07 19:02:26 +02001570void boardcnf_get_ddr_mbps(uint32_t brd, uint32_t *mbps, uint32_t *div)
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001571{
1572 uint32_t md;
1573
1574 md = (mmio_read_32(RST_MODEMR) >> 17) & 0x5;
1575 md = (md | (md >> 1)) & 0x3;
1576 switch (md) {
1577 case 0x0:
1578 *mbps = 3200;
1579 *div = 1;
1580 break;
1581 case 0x1:
1582 *mbps = 2800;
1583 *div = 1;
1584 break;
1585 case 0x2:
1586 *mbps = 2400;
1587 *div = 1;
1588 break;
1589 case 0x3:
1590 *mbps = 1600;
1591 *div = 1;
1592 break;
1593 }
Marek Vasut6c245a52018-12-12 18:06:39 +01001594 (void)brd;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001595}
1596
1597#define _def_REFPERIOD 1890
1598
1599#define M3_SAMPLE_TT_A84 0xB866CC10, 0x3B250421
1600#define M3_SAMPLE_TT_A85 0xB866CC10, 0x3AA50421
1601#define M3_SAMPLE_TT_A86 0xB866CC10, 0x3AA48421
1602#define M3_SAMPLE_FF_B45 0xB866CC10, 0x3AB00C21
1603#define M3_SAMPLE_FF_B49 0xB866CC10, 0x39B10C21
1604#define M3_SAMPLE_FF_B56 0xB866CC10, 0x3AAF8C21
1605#define M3_SAMPLE_SS_E24 0xB866CC10, 0x3BA39421
1606#define M3_SAMPLE_SS_E28 0xB866CC10, 0x3C231421
1607#define M3_SAMPLE_SS_E32 0xB866CC10, 0x3C241421
1608
Marek Vasut38dc7562019-08-07 19:17:42 +02001609static const uint32_t termcode_by_sample[20][3] = {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001610 {M3_SAMPLE_TT_A84, 0x000158D5},
1611 {M3_SAMPLE_TT_A85, 0x00015955},
1612 {M3_SAMPLE_TT_A86, 0x00015955},
1613 {M3_SAMPLE_FF_B45, 0x00015690},
1614 {M3_SAMPLE_FF_B49, 0x00015753},
1615 {M3_SAMPLE_FF_B56, 0x00015793},
1616 {M3_SAMPLE_SS_E24, 0x00015996},
1617 {M3_SAMPLE_SS_E28, 0x000159D7},
1618 {M3_SAMPLE_SS_E32, 0x00015997},
1619 {0xFFFFFFFF, 0xFFFFFFFF, 0x0001554F}
1620};
1621
1622#ifdef BOARD_JUDGE_AUTO
1623/*
1624 * SAMPLE board detect function
1625 */
Marek Vasut80784f92019-08-07 19:02:26 +02001626#define PFC_PMMR 0xE6060000U
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001627#define PFC_PUEN5 0xE6060414U
1628#define PFC_PUEN6 0xE6060418U
1629#define PFC_PUD5 0xE6060454U
1630#define PFC_PUD6 0xE6060458U
1631#define GPIO_INDT5 0xE605500CU
Marek Vasut80784f92019-08-07 19:02:26 +02001632#define GPIO_GPSR6 0xE6060118U
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001633
1634#if (RCAR_GEN3_ULCB == 0)
1635static void pfc_write_and_poll(uint32_t a, uint32_t v)
1636{
1637 mmio_write_32(PFC_PMMR, ~v);
1638 v = ~mmio_read_32(PFC_PMMR);
1639 mmio_write_32(a, v);
Marek Vasut6a131772019-08-07 19:56:09 +02001640 while (v != mmio_read_32(a))
1641 ;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001642 dsb_sev();
1643}
1644#endif
1645
1646#ifndef RCAR_GEN3_ULCB
1647#define RCAR_GEN3_ULCB 0
1648#endif
1649
1650#if (RCAR_GEN3_ULCB == 0) /* non Starter Kit */
1651
1652static uint32_t opencheck_SSI_WS6(void)
1653{
1654 uint32_t dataL, down, up;
1655 uint32_t gpsr6_bak;
1656 uint32_t puen5_bak;
1657 uint32_t pud5_bak;
1658
1659 gpsr6_bak = mmio_read_32(GPIO_GPSR6);
1660 puen5_bak = mmio_read_32(PFC_PUEN5);
1661 pud5_bak = mmio_read_32(PFC_PUD5);
1662 dsb_sev();
1663
Marek Vasuta75f8262019-07-14 08:55:27 +02001664 dataL = (gpsr6_bak & ~BIT(15));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001665 pfc_write_and_poll(GPIO_GPSR6, dataL);
1666
1667 /* Pull-Up/Down Enable (PUEN5[22]=1) */
1668 dataL = puen5_bak;
Marek Vasuta75f8262019-07-14 08:55:27 +02001669 dataL |= (BIT(22));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001670 pfc_write_and_poll(PFC_PUEN5, dataL);
1671
1672 /* Pull-Down-Enable (PUD5[22]=0, PUEN5[22]=1) */
1673 dataL = pud5_bak;
Marek Vasuta75f8262019-07-14 08:55:27 +02001674 dataL &= ~(BIT(22));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001675 pfc_write_and_poll(PFC_PUD5, dataL);
1676 /* GPSR6[15]=SSI_WS6 */
1677 rcar_micro_delay(10);
1678 down = (mmio_read_32(GPIO_INDT6) >> 15) & 0x1;
1679 dsb_sev();
1680
1681 /* Pull-Up-Enable (PUD5[22]=1, PUEN5[22]=1) */
1682 dataL = pud5_bak;
Marek Vasuta75f8262019-07-14 08:55:27 +02001683 dataL |= (BIT(22));
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001684 pfc_write_and_poll(PFC_PUD5, dataL);
1685
1686 /* GPSR6[15]=SSI_WS6 */
1687 rcar_micro_delay(10);
1688 up = (mmio_read_32(GPIO_INDT6) >> 15) & 0x1;
1689
1690 dsb_sev();
1691
1692 pfc_write_and_poll(GPIO_GPSR6, gpsr6_bak);
1693 pfc_write_and_poll(PFC_PUEN5, puen5_bak);
1694 pfc_write_and_poll(PFC_PUD5, pud5_bak);
1695
1696 if (down == up) {
1697 /* Same = Connect */
1698 return 0;
1699 }
Marek Vasut6a131772019-08-07 19:56:09 +02001700
1701 /* Diff = Open */
1702 return 1;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001703}
1704
1705#endif
1706
1707static uint32_t _board_judge(void)
1708{
1709 uint32_t brd;
Marek Vasut80784f92019-08-07 19:02:26 +02001710#if (RCAR_GEN3_ULCB == 1)
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001711 /* Starter Kit */
Marek Vasut38dc7562019-08-07 19:17:42 +02001712 if (prr_product == PRR_PRODUCT_H3) {
1713 if (prr_cut <= PRR_PRODUCT_11) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001714 /* RENESAS Starter Kit(H3 Ver.1.x/SIP) board */
1715 brd = 2;
1716 } else {
1717 /* RENESAS Starter Kit(H3 Ver.2.0 or later/SIP) board */
1718#if (RCAR_DRAM_LPDDR4_MEMCONF == 0)
1719 brd = 7;
1720#else
1721 brd = 8;
1722#endif
1723 }
Marek Vasut38dc7562019-08-07 19:17:42 +02001724 } else if (prr_product == PRR_PRODUCT_M3) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001725 /* RENESAS Starter Kit(M3-W/SIP 8Gbit 1rank) board */
1726 brd = 3;
1727 } else {
1728 /* RENESAS Starter Kit(M3-N/SIP) board */
1729 brd = 11;
1730 }
1731#else
1732 uint32_t usb2_ovc_open;
1733
1734 usb2_ovc_open = opencheck_SSI_WS6();
1735
Marek Vasut80784f92019-08-07 19:02:26 +02001736 /* RENESAS Eva-board */
Marek Vasut6c245a52018-12-12 18:06:39 +01001737 brd = 99;
Marek Vasut38dc7562019-08-07 19:17:42 +02001738 if (prr_product == PRR_PRODUCT_V3H) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001739 /* RENESAS Condor board */
1740 brd = 12;
1741 } else if (usb2_ovc_open) {
Marek Vasut38dc7562019-08-07 19:17:42 +02001742 if (prr_product == PRR_PRODUCT_M3N) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001743 /* RENESAS Kriek board with M3-N */
1744 brd = 10;
Marek Vasut38dc7562019-08-07 19:17:42 +02001745 } else if (prr_product == PRR_PRODUCT_M3) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001746 /* RENESAS Kriek board with M3-W */
1747 brd = 1;
Marek Vasut6a131772019-08-07 19:56:09 +02001748 } else if ((prr_product == PRR_PRODUCT_H3) &&
1749 (prr_cut <= PRR_PRODUCT_11)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001750 /* RENESAS Kriek board with PM3 */
1751 brd = 13;
Marek Vasut6a131772019-08-07 19:56:09 +02001752 } else if ((prr_product == PRR_PRODUCT_H3) &&
1753 (prr_cut > PRR_PRODUCT_20)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001754 /* RENESAS Kriek board with H3N */
1755 brd = 15;
1756 }
1757 } else {
Marek Vasut38dc7562019-08-07 19:17:42 +02001758 if (prr_product == PRR_PRODUCT_H3) {
1759 if (prr_cut <= PRR_PRODUCT_11) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001760 /* RENESAS SALVATOR-X (H3 Ver.1.x/SIP) */
1761 brd = 2;
Marek Vasut38dc7562019-08-07 19:17:42 +02001762 } else if (prr_cut < PRR_PRODUCT_30) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001763 /* RENESAS SALVATOR-X (H3 Ver.2.0/SIP) */
1764 brd = 7; // 8Gbit/1rank
1765 } else {
1766 /* RENESAS SALVATOR-X (H3 Ver.3.0/SIP) */
1767#if (RCAR_DRAM_LPDDR4_MEMCONF == 0)
1768 brd = 7;
1769#else
1770 brd = 8;
1771#endif
1772 }
Marek Vasut38dc7562019-08-07 19:17:42 +02001773 } else if (prr_product == PRR_PRODUCT_M3N) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001774 /* RENESAS SALVATOR-X (M3-N/SIP) */
1775 brd = 11;
Marek Vasut6ad74c32019-08-08 16:34:22 +02001776 } else if ((prr_product == PRR_PRODUCT_M3) &&
1777 (prr_cut <= PRR_PRODUCT_20)) {
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001778 /* RENESAS SALVATOR-X (M3-W/SIP) */
1779 brd = 0;
Marek Vasut6ad74c32019-08-08 16:34:22 +02001780 } else if ((prr_product == PRR_PRODUCT_M3) &&
1781 (prr_cut < PRR_PRODUCT_30)) {
Chiaki Fujii59263ee2019-05-17 10:45:02 +09001782 /* RENESAS SALVATOR-X (M3-W Ver.1.x/SIP) */
Chiaki Fujii61aa8032019-03-01 20:28:55 +09001783 brd = 19;
Marek Vasut6ad74c32019-08-08 16:34:22 +02001784 } else if ((prr_product == PRR_PRODUCT_M3) &&
1785 (prr_cut >= PRR_PRODUCT_30)) {
Marek Vasut3af20052019-02-25 14:57:08 +01001786 /* RENESAS SALVATOR-X (M3-W ver.3.0/SIP) */
1787 brd = 18;
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001788 }
1789 }
1790#endif
Marek Vasut6c245a52018-12-12 18:06:39 +01001791
Jorge Ramirez-Ortiz47503d22018-09-23 09:36:52 +02001792 return brd;
1793}
1794#endif