1 /* 2 * Copyright (c) 2015-2021, Renesas Electronics Corporation. 3 * All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 #ifndef RZG_SOC 9 #define RZG_SOC 0 10 #endif 11 12 #if (RZG_SOC == 1) 13 #define BOARDNUM 4 14 #else 15 16 #include <board.h> 17 18 #define BOARDNUM 22 19 #endif /* RZG_SOC == 1 */ 20 #define BOARD_JUDGE_AUTO 21 22 #ifdef BOARD_JUDGE_AUTO 23 static uint32_t _board_judge(void); 24 25 static uint32_t boardcnf_get_brd_type(void) 26 { 27 return _board_judge(); 28 } 29 #else 30 static uint32_t boardcnf_get_brd_type(void) 31 { 32 return 1; 33 } 34 #endif 35 36 #define DDR_FAST_INIT 37 38 struct _boardcnf_ch { 39 uint8_t ddr_density[CS_CNT]; 40 uint64_t ca_swap; 41 uint16_t dqs_swap; 42 uint32_t dq_swap[SLICE_CNT]; 43 uint8_t dm_swap[SLICE_CNT]; 44 uint16_t wdqlvl_patt[16]; 45 int8_t cacs_adj[16]; 46 int8_t dm_adj_w[SLICE_CNT]; 47 int8_t dq_adj_w[SLICE_CNT * 8]; 48 int8_t dm_adj_r[SLICE_CNT]; 49 int8_t dq_adj_r[SLICE_CNT * 8]; 50 }; 51 52 struct _boardcnf { 53 uint8_t phyvalid; 54 uint8_t dbi_en; 55 uint16_t cacs_dly; 56 int16_t cacs_dly_adj; 57 uint16_t dqdm_dly_w; 58 uint16_t dqdm_dly_r; 59 struct _boardcnf_ch ch[DRAM_CH_CNT]; 60 }; 61 62 #define WDQLVL_PAT {\ 63 0x00AA,\ 64 0x0055,\ 65 0x00AA,\ 66 0x0155,\ 67 0x01CC,\ 68 0x0133,\ 69 0x00CC,\ 70 0x0033,\ 71 0x00F0,\ 72 0x010F,\ 73 0x01F0,\ 74 0x010F,\ 75 0x00F0,\ 76 0x00F0,\ 77 0x000F,\ 78 0x010F} 79 80 #if (RZG_SOC == 1) 81 static const struct _boardcnf boardcnfs[BOARDNUM] = { 82 { 83 /* boardcnf[0] HopeRun HiHope RZ/G2M 16Gbit/1rank/2ch board with G2M SoC */ 84 .phyvalid = 0x03U, 85 .dbi_en = 0x01U, 86 .cacs_dly = 0x02c0U, 87 .cacs_dly_adj = 0x0U, 88 .dqdm_dly_w = 0x0300U, 89 .dqdm_dly_r = 0x00a0U, 90 .ch = { 91 { 92 { 0x04U, 0xffU }, 93 0x00345201UL, 94 0x3201U, 95 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U }, 96 { 0x08U, 0x08U, 0x08U, 0x08U }, 97 WDQLVL_PAT, 98 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 99 { 0, 0, 0, 0 }, 100 { 0, 0, 0, 0, 0, 0, 0, 0, 101 0, 0, 0, 0, 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 }, 105 { 0, 0, 0, 0, 0, 0, 0, 0, 106 0, 0, 0, 0, 0, 0, 0, 0, 107 0, 0, 0, 0, 0, 0, 0, 0, 108 0, 0, 0, 0, 0, 0, 0, 0 } 109 }, 110 { 111 { 0x04U, 0xffU }, 112 0x00302154UL, 113 0x2310U, 114 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U }, 115 { 0x08U, 0x08U, 0x08U, 0x08U }, 116 WDQLVL_PAT, 117 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 118 { 0, 0, 0, 0 }, 119 { 0, 0, 0, 0, 0, 0, 0, 0, 120 0, 0, 0, 0, 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 }, 124 { 0, 0, 0, 0, 0, 0, 0, 0, 125 0, 0, 0, 0, 0, 0, 0, 0, 126 0, 0, 0, 0, 0, 0, 0, 0, 127 0, 0, 0, 0, 0, 0, 0, 0 } 128 } 129 } 130 }, 131 /* boardcnf[1] HopeRun HiHope RZ/G2M 8Gbit/2rank/2ch board with G2M SoC */ 132 { 133 0x03U, 134 0x01U, 135 0x02c0U, 136 0x0U, 137 0x0300U, 138 0x00a0U, 139 { 140 { 141 { 0x02U, 0x02U }, 142 0x00345201UL, 143 0x3201U, 144 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U }, 145 { 0x08U, 0x08U, 0x08U, 0x08U }, 146 WDQLVL_PAT, 147 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 148 { 0, 0, 0, 0 }, 149 { 0, 0, 0, 0, 0, 0, 0, 0, 150 0, 0, 0, 0, 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 }, 154 { 0, 0, 0, 0, 0, 0, 0, 0, 155 0, 0, 0, 0, 0, 0, 0, 0, 156 0, 0, 0, 0, 0, 0, 0, 0, 157 0, 0, 0, 0, 0, 0, 0, 0 } 158 }, 159 { 160 { 0x02U, 0x02U }, 161 0x00302154UL, 162 0x2310, 163 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U }, 164 { 0x08U, 0x08U, 0x08U, 0x08U }, 165 WDQLVL_PAT, 166 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 167 { 0, 0, 0, 0 }, 168 { 0, 0, 0, 0, 0, 0, 0, 0, 169 0, 0, 0, 0, 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 }, 173 { 0, 0, 0, 0, 0, 0, 0, 0, 174 0, 0, 0, 0, 0, 0, 0, 0, 175 0, 0, 0, 0, 0, 0, 0, 0, 176 0, 0, 0, 0, 0, 0, 0, 0 } 177 } 178 } 179 }, 180 /* boardcnf[2] HopeRun HiHope RZ/G2H board 16Gbit/1rank/2ch */ 181 { 182 0x05U, 183 0x01U, 184 0x0300U, 185 0, 186 0x0300U, 187 0x00a0U, 188 { 189 { 190 { 0x04U, 0xffU }, 191 0x00345201UL, 192 0x3201U, 193 { 0x01672543U, 0x45367012U, 0x45632107U, 0x60715234U }, 194 { 0x08U, 0x08U, 0x08U, 0x08U }, 195 WDQLVL_PAT, 196 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 197 { 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 0, 0, 0, 0, 0, 0, 0, 0 }, 202 { 0, 0, 0, 0 }, 203 { 0, 0, 0, 0, 0, 0, 0, 0, 204 0, 0, 0, 0, 0, 0, 0, 0, 205 0, 0, 0, 0, 0, 0, 0, 0, 206 0, 0, 0, 0, 0, 0, 0, 0 } 207 }, 208 { 209 { 0x04U, 0xffU }, 210 0x00302154UL, 211 0x2310U, 212 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U }, 213 { 0x08U, 0x08U, 0x08U, 0x08U }, 214 WDQLVL_PAT, 215 { 0, 0, 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 { 0, 0, 0, 0 }, 222 { 0, 0, 0, 0, 0, 0, 0, 0, 223 0, 0, 0, 0, 0, 0, 0, 0, 224 0, 0, 0, 0, 0, 0, 0, 0, 225 0, 0, 0, 0, 0, 0, 0, 0 } 226 }, 227 { 228 { 0x04U, 0xffU }, 229 0x00302154UL, 230 0x2310U, 231 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U }, 232 { 0x08U, 0x08U, 0x08U, 0x08U }, 233 WDQLVL_PAT, 234 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 235 { 0, 0, 0, 0 }, 236 { 0, 0, 0, 0, 0, 0, 0, 0, 237 0, 0, 0, 0, 0, 0, 0, 0, 238 0, 0, 0, 0, 0, 0, 0, 0, 239 0, 0, 0, 0, 0, 0, 0, 0 }, 240 { 0, 0, 0, 0 }, 241 { 0, 0, 0, 0, 0, 0, 0, 0, 242 0, 0, 0, 0, 0, 0, 0, 0, 243 0, 0, 0, 0, 0, 0, 0, 0, 244 0, 0, 0, 0, 0, 0, 0, 0 } 245 }, 246 { 247 { 0xffU, 0xffU }, 248 0UL, 249 0U, 250 { 0U, 0U, 0U, 0U }, 251 { 0U, 0U, 0U, 0U }, 252 WDQLVL_PAT, 253 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 254 { 0, 0, 0, 0 }, 255 { 0, 0, 0, 0, 0, 0, 0, 0, 256 0, 0, 0, 0, 0, 0, 0, 0, 257 0, 0, 0, 0, 0, 0, 0, 0, 258 0, 0, 0, 0, 0, 0, 0, 0 }, 259 { 0, 0, 0, 0 }, 260 { 0, 0, 0, 0, 0, 0, 0, 0, 261 0, 0, 0, 0, 0, 0, 0, 0, 262 0, 0, 0, 0, 0, 0, 0, 0, 263 0, 0, 0, 0, 0, 0, 0, 0 } 264 } 265 } 266 }, 267 /* boardcnf[3] HopeRun HiHope RZ/G2N board 16Gbit/2rank/1ch */ 268 { 269 0x01U, 270 0x01U, 271 0x0300U, 272 0, 273 0x0300U, 274 0x00a0U, 275 { 276 { 277 { 0x04U, 0x04U }, 278 0x00345201UL, 279 0x3201U, 280 { 0x01672543U, 0x45361207U, 0x45632107U, 0x60715234U }, 281 { 0x08U, 0x08U, 0x08U, 0x08U }, 282 WDQLVL_PAT, 283 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 284 { 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, 0, 0, 0, 0, 288 0, 0, 0, 0, 0, 0, 0, 0 }, 289 { 0, 0, 0, 0 }, 290 { 0, 0, 0, 0, 0, 0, 0, 0, 291 0, 0, 0, 0, 0, 0, 0, 0, 292 0, 0, 0, 0, 0, 0, 0, 0, 293 0, 0, 0, 0, 0, 0, 0, 0 } 294 } 295 } 296 }, 297 }; 298 #else 299 static const struct _boardcnf boardcnfs[BOARDNUM] = { 300 { 301 /* boardcnf[0] RENESAS SALVATOR-X board with M3-W/SIP */ 302 .phyvalid = 0x03, 303 .dbi_en = 0x01, 304 .cacs_dly = 0x02c0, 305 .cacs_dly_adj = 0, 306 .dqdm_dly_w = 0x0300, 307 .dqdm_dly_r = 0x00a0, 308 .ch = { 309 { 310 {0x02, 0x02}, 311 0x00543210U, 312 0x3201U, 313 {0x70612543, 0x43251670, 0x45326170, 0x10672534}, 314 {0x08, 0x08, 0x08, 0x08}, 315 WDQLVL_PAT, 316 {0, 0, 0, 0, 0, 0, 0, 0, 317 0, 0}, 318 {0, 0, 0, 0}, 319 {0, 0, 0, 0, 0, 0, 0, 0, 320 0, 0, 0, 0, 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}, 324 {0, 0, 0, 0, 0, 0, 0, 0, 325 0, 0, 0, 0, 0, 0, 0, 0, 326 0, 0, 0, 0, 0, 0, 0, 0, 327 0, 0, 0, 0, 0, 0, 0, 0} 328 }, 329 330 { 331 {0x02, 0x02}, 332 0x00543210, 333 0x2310, 334 {0x01327654, 0x34526107, 0x35421670, 0x70615324}, 335 {0x08, 0x08, 0x08, 0x08}, 336 WDQLVL_PAT, 337 {0, 0, 0, 0, 0, 0, 0, 0, 338 0, 0}, 339 {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 0, 0, 0, 0, 0, 0, 0, 0}, 344 {0, 0, 0, 0}, 345 {0, 0, 0, 0, 0, 0, 0, 0, 346 0, 0, 0, 0, 0, 0, 0, 0, 347 0, 0, 0, 0, 0, 0, 0, 0, 348 0, 0, 0, 0, 0, 0, 0, 0} 349 } 350 } 351 }, 352 /* boardcnf[1] RENESAS KRIEK board with M3-W/SoC */ 353 { 354 0x03, 355 0x01, 356 0x2c0, 357 0, 358 0x300, 359 0x0a0, 360 { 361 { 362 {0x02, 0x02}, 363 0x00345201, 364 0x3201, 365 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 366 {0x08, 0x08, 0x08, 0x08}, 367 WDQLVL_PAT, 368 {0, 0, 0, 0, 0, 0, 0, 0, 369 0, 0}, 370 {0, 0, 0, 0}, 371 {0, 0, 0, 0, 0, 0, 0, 0, 372 0, 0, 0, 0, 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}, 376 {0, 0, 0, 0, 0, 0, 0, 0, 377 0, 0, 0, 0, 0, 0, 0, 0, 378 0, 0, 0, 0, 0, 0, 0, 0, 379 0, 0, 0, 0, 0, 0, 0, 0} 380 }, 381 { 382 {0x02, 0x02}, 383 0x00302154, 384 0x2310, 385 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 386 {0x08, 0x08, 0x08, 0x08}, 387 WDQLVL_PAT, 388 {0, 0, 0, 0, 0, 0, 0, 0, 389 0, 0}, 390 {0, 0, 0, 0}, 391 {0, 0, 0, 0, 0, 0, 0, 0, 392 0, 0, 0, 0, 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}, 396 {0, 0, 0, 0, 0, 0, 0, 0, 397 0, 0, 0, 0, 0, 0, 0, 0, 398 0, 0, 0, 0, 0, 0, 0, 0, 399 0, 0, 0, 0, 0, 0, 0, 0} 400 } 401 } 402 }, 403 /* boardcnf[2] RENESAS SALVATOR-X board with H3 Ver.1.x/SIP(8Gbit 1rank) */ 404 { 405 0x0f, 406 0x00, 407 0x300, 408 -320, 409 0x300, 410 0x0a0, 411 { 412 { 413 {0x02, 0xff}, 414 0x00543210, 415 0x3210, 416 {0x20741365, 0x34256107, 0x57460321, 0x70614532}, 417 {0x08, 0x08, 0x08, 0x08}, 418 WDQLVL_PAT, 419 {0, 0, 0, 0, 0, 0, 0, 0, 420 0, 0}, 421 {0, 0, 0, 0}, 422 {0, 0, 0, 0, 0, 0, 0, 0, 423 0, 0, 0, 0, 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}, 427 {0, 0, 0, 0, 0, 0, 0, 0, 428 0, 0, 0, 0, 0, 0, 0, 0, 429 0, 0, 0, 0, 0, 0, 0, 0, 430 0, 0, 0, 0, 0, 0, 0, 0} 431 }, 432 { 433 {0x02, 0xff}, 434 0x00543210, 435 0x3102, 436 {0x23547610, 0x34526107, 0x67452310, 0x32106754}, 437 {0x08, 0x08, 0x08, 0x08}, 438 WDQLVL_PAT, 439 {0, 0, 0, 0, 0, 0, 0, 0, 440 0, 0}, 441 {0, 0, 0, 0}, 442 {0, 0, 0, 0, 0, 0, 0, 0, 443 0, 0, 0, 0, 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}, 447 {0, 0, 0, 0, 0, 0, 0, 0, 448 0, 0, 0, 0, 0, 0, 0, 0, 449 0, 0, 0, 0, 0, 0, 0, 0, 450 0, 0, 0, 0, 0, 0, 0, 0} 451 }, 452 { 453 {0x02, 0xff}, 454 0x00543210, 455 0x0213, 456 {0x30216754, 0x67453210, 0x70165243, 0x07162345}, 457 {0x08, 0x08, 0x08, 0x08}, 458 WDQLVL_PAT, 459 {0, 0, 0, 0, 0, 0, 0, 0, 460 0, 0}, 461 {0, 0, 0, 0}, 462 {0, 0, 0, 0, 0, 0, 0, 0, 463 0, 0, 0, 0, 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}, 467 {0, 0, 0, 0, 0, 0, 0, 0, 468 0, 0, 0, 0, 0, 0, 0, 0, 469 0, 0, 0, 0, 0, 0, 0, 0, 470 0, 0, 0, 0, 0, 0, 0, 0} 471 }, 472 { 473 {0x02, 0xff}, 474 0x00543210, 475 0x0213, 476 {0x01327654, 0x70615432, 0x54760123, 0x07162345}, 477 {0x08, 0x08, 0x08, 0x08}, 478 WDQLVL_PAT, 479 {0, 0, 0, 0, 0, 0, 0, 0, 480 0, 0}, 481 {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 0, 0, 0, 0, 0, 0, 0, 0}, 486 {0, 0, 0, 0}, 487 {0, 0, 0, 0, 0, 0, 0, 0, 488 0, 0, 0, 0, 0, 0, 0, 0, 489 0, 0, 0, 0, 0, 0, 0, 0, 490 0, 0, 0, 0, 0, 0, 0, 0} 491 } 492 } 493 }, 494 /* boardcnf[3] RENESAS Starter Kit board with M3-W/SIP(8Gbit 1rank) */ 495 { 496 0x03, 497 0x01, 498 0x02c0, 499 0, 500 0x0300, 501 0x00a0, 502 { 503 { 504 {0x02, 0xFF}, 505 0x00543210U, 506 0x3201, 507 {0x70612543, 0x43251670, 0x45326170, 0x10672534}, 508 {0x08, 0x08, 0x08, 0x08}, 509 WDQLVL_PAT, 510 {0, 0, 0, 0, 0, 0, 0, 0, 511 0, 0}, 512 {0, 0, 0, 0}, 513 {0, 0, 0, 0, 0, 0, 0, 0, 514 0, 0, 0, 0, 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}, 518 {0, 0, 0, 0, 0, 0, 0, 0, 519 0, 0, 0, 0, 0, 0, 0, 0, 520 0, 0, 0, 0, 0, 0, 0, 0, 521 0, 0, 0, 0, 0, 0, 0, 0} 522 }, 523 { 524 {0x02, 0xFF}, 525 0x00543210, 526 0x2310, 527 {0x01327654, 0x34526107, 0x35421670, 0x70615324}, 528 {0x08, 0x08, 0x08, 0x08}, 529 WDQLVL_PAT, 530 {0, 0, 0, 0, 0, 0, 0, 0, 531 0, 0}, 532 {0, 0, 0, 0}, 533 {0, 0, 0, 0, 0, 0, 0, 0, 534 0, 0, 0, 0, 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}, 538 {0, 0, 0, 0, 0, 0, 0, 0, 539 0, 0, 0, 0, 0, 0, 0, 0, 540 0, 0, 0, 0, 0, 0, 0, 0, 541 0, 0, 0, 0, 0, 0, 0, 0} 542 } 543 } 544 }, 545 /* boardcnf[4] RENESAS SALVATOR-M(1rank) board with H3 Ver.1.x/SoC */ 546 { 547 0x0f, 548 0x00, 549 0x2c0, 550 -320, 551 0x300, 552 0x0a0, 553 { 554 { 555 {0x02, 0xff}, 556 0x00315024, 557 0x3120, 558 {0x30671254, 0x26541037, 0x17054623, 0x12307645}, 559 {0x08, 0x08, 0x08, 0x08}, 560 WDQLVL_PAT, 561 {0, 0, 0, 0, 0, 0, 0, 0, 562 0, 0}, 563 {0, 0, 0, 0}, 564 {0, 0, 0, 0, 0, 0, 0, 0, 565 0, 0, 0, 0, 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}, 569 {0, 0, 0, 0, 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 }, 574 { 575 {0x02, 0xff}, 576 0x00025143, 577 0x3210, 578 {0x70613542, 0x16245307, 0x30712645, 0x21706354}, 579 {0x08, 0x08, 0x08, 0x08}, 580 WDQLVL_PAT, 581 {0, 0, 0, 0, 0, 0, 0, 0, 582 0, 0}, 583 {0, 0, 0, 0}, 584 {0, 0, 0, 0, 0, 0, 0, 0, 585 0, 0, 0, 0, 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}, 589 {0, 0, 0, 0, 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 }, 594 { 595 {0x02, 0xff}, 596 0x00523104, 597 0x2301, 598 {0x70613542, 0x16245307, 0x30712645, 0x21706354}, 599 {0x08, 0x08, 0x08, 0x08}, 600 WDQLVL_PAT, 601 {0, 0, 0, 0, 0, 0, 0, 0, 602 0, 0}, 603 {0, 0, 0, 0}, 604 {0, 0, 0, 0, 0, 0, 0, 0, 605 0, 0, 0, 0, 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}, 609 {0, 0, 0, 0, 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 }, 614 { 615 {0x02, 0xff}, 616 0x00153402, 617 0x2031, 618 {0x30671254, 0x26541037, 0x17054623, 0x12307645}, 619 {0x08, 0x08, 0x08, 0x08}, 620 WDQLVL_PAT, 621 {0, 0, 0, 0, 0, 0, 0, 0, 622 0, 0}, 623 {0, 0, 0, 0}, 624 {0, 0, 0, 0, 0, 0, 0, 0, 625 0, 0, 0, 0, 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}, 629 {0, 0, 0, 0, 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 } 634 } 635 }, 636 /* boardcnf[5] RENESAS KRIEK-1rank board with M3-W/SoC */ 637 { 638 0x03, 639 0x01, 640 0x2c0, 641 0, 642 0x300, 643 0x0a0, 644 { 645 { 646 {0x02, 0xff}, 647 0x00345201, 648 0x3201, 649 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 650 {0x08, 0x08, 0x08, 0x08}, 651 WDQLVL_PAT, 652 {0, 0, 0, 0, 0, 0, 0, 0, 653 0, 0}, 654 {0, 0, 0, 0}, 655 {0, 0, 0, 0, 0, 0, 0, 0, 656 0, 0, 0, 0, 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}, 660 {0, 0, 0, 0, 0, 0, 0, 0, 661 0, 0, 0, 0, 0, 0, 0, 0, 662 0, 0, 0, 0, 0, 0, 0, 0, 663 0, 0, 0, 0, 0, 0, 0, 0} 664 }, 665 { 666 {0x02, 0xff}, 667 0x00302154, 668 0x2310, 669 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 670 {0x08, 0x08, 0x08, 0x08}, 671 WDQLVL_PAT, 672 {0, 0, 0, 0, 0, 0, 0, 0, 673 0, 0}, 674 {0, 0, 0, 0}, 675 {0, 0, 0, 0, 0, 0, 0, 0, 676 0, 0, 0, 0, 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}, 680 {0, 0, 0, 0, 0, 0, 0, 0, 681 0, 0, 0, 0, 0, 0, 0, 0, 682 0, 0, 0, 0, 0, 0, 0, 0, 683 0, 0, 0, 0, 0, 0, 0, 0} 684 } 685 } 686 }, 687 /* boardcnf[6] RENESAS SALVATOR-X board with H3 Ver.1.x/SIP(8Gbit 2rank) */ 688 { 689 0x0f, 690 0x00, 691 0x300, 692 -320, 693 0x300, 694 0x0a0, 695 { 696 { 697 {0x02, 0x02}, 698 0x00543210, 699 0x3210, 700 {0x20741365, 0x34256107, 0x57460321, 0x70614532}, 701 {0x08, 0x08, 0x08, 0x08}, 702 WDQLVL_PAT, 703 {0, 0, 0, 0, 0, 0, 0, 0, 704 0, 0}, 705 {0, 0, 0, 0}, 706 {0, 0, 0, 0, 0, 0, 0, 0, 707 0, 0, 0, 0, 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}, 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, 0, 0, 0, 0} 715 }, 716 { 717 {0x02, 0x02}, 718 0x00543210, 719 0x3102, 720 {0x23547610, 0x34526107, 0x67452310, 0x32106754}, 721 {0x08, 0x08, 0x08, 0x08}, 722 WDQLVL_PAT, 723 {0, 0, 0, 0, 0, 0, 0, 0, 724 0, 0}, 725 {0, 0, 0, 0}, 726 {0, 0, 0, 0, 0, 0, 0, 0, 727 0, 0, 0, 0, 0, 0, 0, 0, 728 0, 0, 0, 0, 0, 0, 0, 0, 729 0, 0, 0, 0, 0, 0, 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 }, 736 { 737 {0x02, 0x02}, 738 0x00543210, 739 0x0213, 740 {0x30216754, 0x67453210, 0x70165243, 0x07162345}, 741 {0x08, 0x08, 0x08, 0x08}, 742 WDQLVL_PAT, 743 {0, 0, 0, 0, 0, 0, 0, 0, 744 0, 0}, 745 {0, 0, 0, 0}, 746 {0, 0, 0, 0, 0, 0, 0, 0, 747 0, 0, 0, 0, 0, 0, 0, 0, 748 0, 0, 0, 0, 0, 0, 0, 0, 749 0, 0, 0, 0, 0, 0, 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 }, 756 { 757 {0x02, 0x02}, 758 0x00543210, 759 0x0213, 760 {0x01327654, 0x70615432, 0x54760123, 0x07162345}, 761 {0x08, 0x08, 0x08, 0x08}, 762 WDQLVL_PAT, 763 {0, 0, 0, 0, 0, 0, 0, 0, 764 0, 0}, 765 {0, 0, 0, 0}, 766 {0, 0, 0, 0, 0, 0, 0, 0, 767 0, 0, 0, 0, 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}, 771 {0, 0, 0, 0, 0, 0, 0, 0, 772 0, 0, 0, 0, 0, 0, 0, 0, 773 0, 0, 0, 0, 0, 0, 0, 0, 774 0, 0, 0, 0, 0, 0, 0, 0} 775 } 776 } 777 }, 778 /* 779 * boardcnf[7] RENESAS SALVATOR-X board with 780 * H3 Ver.2.0 or later/SIP(8Gbit 1rank) 781 */ 782 { 783 0x0f, 784 0x01, 785 0x300, 786 0, 787 0x300, 788 0x0a0, 789 { 790 { 791 {0x02, 0xff}, 792 0x00543210, 793 0x2310, 794 {0x70631425, 0x34527016, 0x43527610, 0x32104567}, 795 {0x08, 0x08, 0x08, 0x08}, 796 WDQLVL_PAT, 797 {0, 0, 0, 0, 0, 0, 0, 0, 798 0, 0}, 799 {0, 0, 0, 0}, 800 {0, 0, 0, 0, 0, 0, 0, 0, 801 0, 0, 0, 0, 0, 0, 0, 0, 802 0, 0, 0, 0, 0, 0, 0, 0, 803 0, 0, 0, 0, 0, 0, 0, 0}, 804 {0, 0, 0, 0}, 805 {0, 0, 0, 0, 0, 0, 0, 0, 806 0, 0, 0, 0, 0, 0, 0, 0, 807 0, 0, 0, 0, 0, 0, 0, 0, 808 0, 0, 0, 0, 0, 0, 0, 0} 809 }, 810 { 811 {0x02, 0xff}, 812 0x00105432, 813 0x3210, 814 {0x43256107, 0x07162354, 0x10234567, 0x01235467}, 815 {0x08, 0x08, 0x08, 0x08}, 816 WDQLVL_PAT, 817 {0, 0, 0, 0, 0, 0, 0, 0, 818 0, 0}, 819 {0, 0, 0, 0}, 820 {0, 0, 0, 0, 0, 0, 0, 0, 821 0, 0, 0, 0, 0, 0, 0, 0, 822 0, 0, 0, 0, 0, 0, 0, 0, 823 0, 0, 0, 0, 0, 0, 0, 0}, 824 {0, 0, 0, 0}, 825 {0, 0, 0, 0, 0, 0, 0, 0, 826 0, 0, 0, 0, 0, 0, 0, 0, 827 0, 0, 0, 0, 0, 0, 0, 0, 828 0, 0, 0, 0, 0, 0, 0, 0} 829 }, 830 { 831 {0x02, 0xff}, 832 0x00543210, 833 0x2301, 834 {0x01327654, 0x02316457, 0x10234567, 0x01325467}, 835 {0x08, 0x08, 0x08, 0x08}, 836 WDQLVL_PAT, 837 {0, 0, 0, 0, 0, 0, 0, 0, 838 0, 0}, 839 {0, 0, 0, 0}, 840 {0, 0, 0, 0, 0, 0, 0, 0, 841 0, 0, 0, 0, 0, 0, 0, 0, 842 0, 0, 0, 0, 0, 0, 0, 0, 843 0, 0, 0, 0, 0, 0, 0, 0}, 844 {0, 0, 0, 0}, 845 {0, 0, 0, 0, 0, 0, 0, 0, 846 0, 0, 0, 0, 0, 0, 0, 0, 847 0, 0, 0, 0, 0, 0, 0, 0, 848 0, 0, 0, 0, 0, 0, 0, 0} 849 }, 850 { 851 {0x02, 0xff}, 852 0x00543210, 853 0x2301, 854 {0x12034765, 0x23105467, 0x23017645, 0x32106745}, 855 {0x08, 0x08, 0x08, 0x08}, 856 WDQLVL_PAT, 857 {0, 0, 0, 0, 0, 0, 0, 0, 858 0, 0}, 859 {0, 0, 0, 0}, 860 {0, 0, 0, 0, 0, 0, 0, 0, 861 0, 0, 0, 0, 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}, 865 {0, 0, 0, 0, 0, 0, 0, 0, 866 0, 0, 0, 0, 0, 0, 0, 0, 867 0, 0, 0, 0, 0, 0, 0, 0, 868 0, 0, 0, 0, 0, 0, 0, 0} 869 } 870 } 871 }, 872 /* 873 * boardcnf[8] RENESAS SALVATOR-X board with 874 * H3 Ver.2.0 or later/SIP(8Gbit 2rank) 875 */ 876 { 877 #if RCAR_DRAM_CHANNEL == 5 878 0x05, 879 #else 880 0x0f, 881 #endif 882 0x01, 883 0x300, 884 0, 885 0x300, 886 0x0a0, 887 { 888 { 889 {0x02, 0x02}, 890 0x00543210, 891 0x2310, 892 {0x70631425, 0x34527016, 0x43527610, 0x32104567}, 893 {0x08, 0x08, 0x08, 0x08}, 894 WDQLVL_PAT, 895 {0, 0, 0, 0, 0, 0, 0, 0, 896 0, 0}, 897 {0, 0, 0, 0}, 898 {0, 0, 0, 0, 0, 0, 0, 0, 899 0, 0, 0, 0, 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}, 903 {0, 0, 0, 0, 0, 0, 0, 0, 904 0, 0, 0, 0, 0, 0, 0, 0, 905 0, 0, 0, 0, 0, 0, 0, 0, 906 0, 0, 0, 0, 0, 0, 0, 0} 907 }, 908 #if ((RCAR_DRAM_CHANNEL == 5) && (RCAR_DRAM_SPLIT == 2)) 909 { 910 {0x02, 0x02}, 911 0x00543210, 912 0x2301, 913 {0x01327654, 0x02316457, 0x10234567, 0x01325467}, 914 {0x08, 0x08, 0x08, 0x08}, 915 WDQLVL_PAT, 916 {0, 0, 0, 0, 0, 0, 0, 0, 917 0, 0}, 918 {0, 0, 0, 0}, 919 {0, 0, 0, 0, 0, 0, 0, 0, 920 0, 0, 0, 0, 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}, 924 {0, 0, 0, 0, 0, 0, 0, 0, 925 0, 0, 0, 0, 0, 0, 0, 0, 926 0, 0, 0, 0, 0, 0, 0, 0, 927 0, 0, 0, 0, 0, 0, 0, 0} 928 }, 929 #else 930 { 931 {0x02, 0x02}, 932 0x00105432, 933 0x3210, 934 {0x43256107, 0x07162354, 0x10234567, 0x01235467}, 935 {0x08, 0x08, 0x08, 0x08}, 936 WDQLVL_PAT, 937 {0, 0, 0, 0, 0, 0, 0, 0, 938 0, 0}, 939 {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, 0, 0, 0, 0}, 944 {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, 948 0, 0, 0, 0, 0, 0, 0, 0} 949 }, 950 #endif 951 { 952 {0x02, 0x02}, 953 0x00543210, 954 0x2301, 955 {0x01327654, 0x02316457, 0x10234567, 0x01325467}, 956 {0x08, 0x08, 0x08, 0x08}, 957 WDQLVL_PAT, 958 {0, 0, 0, 0, 0, 0, 0, 0, 959 0, 0}, 960 {0, 0, 0, 0}, 961 {0, 0, 0, 0, 0, 0, 0, 0, 962 0, 0, 0, 0, 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}, 966 {0, 0, 0, 0, 0, 0, 0, 0, 967 0, 0, 0, 0, 0, 0, 0, 0, 968 0, 0, 0, 0, 0, 0, 0, 0, 969 0, 0, 0, 0, 0, 0, 0, 0} 970 }, 971 { 972 {0x02, 0x02}, 973 0x00543210, 974 0x2301, 975 {0x12034765, 0x23105467, 0x23017645, 0x32106745}, 976 {0x08, 0x08, 0x08, 0x08}, 977 WDQLVL_PAT, 978 {0, 0, 0, 0, 0, 0, 0, 0, 979 0, 0}, 980 {0, 0, 0, 0}, 981 {0, 0, 0, 0, 0, 0, 0, 0, 982 0, 0, 0, 0, 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}, 986 {0, 0, 0, 0, 0, 0, 0, 0, 987 0, 0, 0, 0, 0, 0, 0, 0, 988 0, 0, 0, 0, 0, 0, 0, 0, 989 0, 0, 0, 0, 0, 0, 0, 0} 990 } 991 } 992 }, 993 /* boardcnf[9] RENESAS SALVATOR-MS(1rank) board with H3 Ver.2.0 or later/SoC */ 994 { 995 0x0f, 996 0x01, 997 0x300, 998 0, 999 0x300, 1000 0x0a0, 1001 { 1002 { 1003 {0x02, 0xff}, 1004 0x00543210, 1005 0x3210, 1006 {0x27645310, 0x75346210, 0x53467210, 0x23674510}, 1007 {0x08, 0x08, 0x08, 0x08}, 1008 WDQLVL_PAT, 1009 {0, 0, 0, 0, 0, 0, 0, 0, 1010 0, 0}, 1011 {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, 0, 0, 0, 0, 1015 0, 0, 0, 0, 0, 0, 0, 0}, 1016 {0, 0, 0, 0}, 1017 {0, 0, 0, 0, 0, 0, 0, 0, 1018 0, 0, 0, 0, 0, 0, 0, 0, 1019 0, 0, 0, 0, 0, 0, 0, 0, 1020 0, 0, 0, 0, 0, 0, 0, 0} 1021 }, 1022 { 1023 {0x02, 0xff}, 1024 0x00543210, 1025 0x2301, 1026 {0x23764510, 0x43257610, 0x43752610, 0x37652401}, 1027 {0x08, 0x08, 0x08, 0x08}, 1028 WDQLVL_PAT, 1029 {-128, -128, -128, -128, -128, -128, 0, 0, 1030 0, 0}, 1031 {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, 0, 0, 0, 0, 1035 0, 0, 0, 0, 0, 0, 0, 0}, 1036 {0, 0, 0, 0}, 1037 {0, 0, 0, 0, 0, 0, 0, 0, 1038 0, 0, 0, 0, 0, 0, 0, 0, 1039 0, 0, 0, 0, 0, 0, 0, 0, 1040 0, 0, 0, 0, 0, 0, 0, 0} 1041 }, 1042 { 1043 {0x02, 0xff}, 1044 0x00452103, 1045 0x3210, 1046 {0x32764510, 0x43257610, 0x43752610, 0x26573401}, 1047 {0x08, 0x08, 0x08, 0x08}, 1048 WDQLVL_PAT, 1049 {0, 0, 0, 0, 0, 0, 0, 0, 1050 0, 0}, 1051 {0, 0, 0, 0}, 1052 {0, 0, 0, 0, 0, 0, 0, 0, 1053 0, 0, 0, 0, 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}, 1057 {0, 0, 0, 0, 0, 0, 0, 0, 1058 0, 0, 0, 0, 0, 0, 0, 0, 1059 0, 0, 0, 0, 0, 0, 0, 0, 1060 0, 0, 0, 0, 0, 0, 0, 0} 1061 }, 1062 { 1063 {0x02, 0xff}, 1064 0x00520413, 1065 0x2301, 1066 {0x47652301, 0x75346210, 0x53467210, 0x32674501}, 1067 {0x08, 0x08, 0x08, 0x08}, 1068 WDQLVL_PAT, 1069 {30, 30, 30, 30, 30, 30, 30, 30, 1070 30, 30}, 1071 {0, 0, 0, 0}, 1072 {0, 0, 0, 0, 0, 0, 0, 0, 1073 0, 0, 0, 0, 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}, 1077 {0, 0, 0, 0, 0, 0, 0, 0, 1078 0, 0, 0, 0, 0, 0, 0, 0, 1079 0, 0, 0, 0, 0, 0, 0, 0, 1080 0, 0, 0, 0, 0, 0, 0, 0} 1081 } 1082 } 1083 }, 1084 /* boardcnf[10] RENESAS Kriek(2rank) board with M3-N/SoC */ 1085 { 1086 0x01, 1087 0x01, 1088 0x300, 1089 0, 1090 0x300, 1091 0x0a0, 1092 { 1093 { 1094 {0x02, 0x02}, 1095 0x00345201, 1096 0x3201, 1097 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1098 {0x08, 0x08, 0x08, 0x08}, 1099 WDQLVL_PAT, 1100 {0, 0, 0, 0, 0, 0, 0, 0, 1101 0, 0}, 1102 {0, 0, 0, 0}, 1103 {0, 0, 0, 0, 0, 0, 0, 0, 1104 0, 0, 0, 0, 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}, 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, 0, 0, 0, 0} 1112 } 1113 } 1114 }, 1115 /* boardcnf[11] RENESAS SALVATOR-X board with M3-N/SIP(8Gbit 2rank) */ 1116 { 1117 0x01, 1118 0x01, 1119 0x300, 1120 0, 1121 0x300, 1122 0x0a0, 1123 { 1124 { 1125 #if (RCAR_DRAM_LPDDR4_MEMCONF == 2) 1126 {0x04, 0x04}, 1127 #else 1128 {0x02, 0x02}, 1129 #endif 1130 0x00342501, 1131 0x3201, 1132 {0x10672534, 0x43257106, 0x34527601, 0x71605243}, 1133 {0x08, 0x08, 0x08, 0x08}, 1134 WDQLVL_PAT, 1135 {0, 0, 0, 0, 0, 0, 0, 0, 1136 0, 0}, 1137 {0, 0, 0, 0}, 1138 {0, 0, 0, 0, 0, 0, 0, 0, 1139 0, 0, 0, 0, 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}, 1143 {0, 0, 0, 0, 0, 0, 0, 0, 1144 0, 0, 0, 0, 0, 0, 0, 0, 1145 0, 0, 0, 0, 0, 0, 0, 0, 1146 0, 0, 0, 0, 0, 0, 0, 0} 1147 } 1148 } 1149 }, 1150 /* boardcnf[12] RENESAS CONDOR board with V3H/SoC */ 1151 { 1152 0x01, 1153 0x1, 1154 0x300, 1155 0, 1156 0x300, 1157 0x0a0, 1158 { 1159 { 1160 {0x02, 0x02}, 1161 0x00501342, 1162 0x3201, 1163 {0x70562134, 0x34526071, 0x23147506, 0x12430567}, 1164 {0x08, 0x08, 0x08, 0x08}, 1165 WDQLVL_PAT, 1166 {0, 0, 0, 0, 0, 0, 0, 0, 1167 0, 0}, 1168 {0, 0, 0, 0}, 1169 {0, 0, 0, 0, 0, 0, 0, 0, 1170 0, 0, 0, 0, 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}, 1174 {0, 0, 0, 0, 0, 0, 0, 0, 1175 0, 0, 0, 0, 0, 0, 0, 0, 1176 0, 0, 0, 0, 0, 0, 0, 0, 1177 0, 0, 0, 0, 0, 0, 0, 0} 1178 } 1179 } 1180 }, 1181 /* boardcnf[13] RENESAS KRIEK board with PM3/SoC */ 1182 { 1183 0x05, 1184 0x00, 1185 0x2c0, 1186 -320, 1187 0x300, 1188 0x0a0, 1189 { 1190 { 1191 {0x02, 0x02}, 1192 0x00345201, 1193 0x3201, 1194 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1195 {0x08, 0x08, 0x08, 0x08}, 1196 WDQLVL_PAT, 1197 {0, 0, 0, 0, 0, 0, 0, 0, 1198 0, 0}, 1199 {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, 0, 0, 0, 0}, 1204 {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 0, 0, 0, 0, 0, 0, 0, 0} 1209 }, 1210 { 1211 {0x02, 0x02}, 1212 0x00302154, 1213 0x2310, 1214 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1215 {0x08, 0x08, 0x08, 0x08}, 1216 WDQLVL_PAT, 1217 {0, 0, 0, 0, 0, 0, 0, 0, 1218 0, 0}, 1219 {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, 0, 0, 0, 0}, 1224 {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 0, 0, 0, 0, 0, 0, 0, 0} 1229 }, 1230 { 1231 {0x02, 0x02}, 1232 0x00302154, 1233 0x2310, 1234 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1235 {0x08, 0x08, 0x08, 0x08}, 1236 WDQLVL_PAT, 1237 {0, 0, 0, 0, 0, 0, 0, 0, 1238 0, 0}, 1239 {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, 0, 0, 0, 0}, 1244 {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, 1248 0, 0, 0, 0, 0, 0, 0, 0} 1249 }, 1250 { 1251 {0xff, 0xff}, 1252 0, 1253 0, 1254 {0, 0, 0, 0}, 1255 {0, 0, 0, 0}, 1256 WDQLVL_PAT, 1257 {0, 0, 0, 0, 0, 0, 0, 0, 1258 0, 0}, 1259 {0, 0, 0, 0}, 1260 {0, 0, 0, 0, 0, 0, 0, 0, 1261 0, 0, 0, 0, 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}, 1265 {0, 0, 0, 0, 0, 0, 0, 0, 1266 0, 0, 0, 0, 0, 0, 0, 0, 1267 0, 0, 0, 0, 0, 0, 0, 0, 1268 0, 0, 0, 0, 0, 0, 0, 0} 1269 } 1270 } 1271 }, 1272 /* boardcnf[14] SALVATOR-X board with H3 Ver.2.0 or later/SIP(16Gbit 1rank) */ 1273 { 1274 #if RCAR_DRAM_CHANNEL == 5 1275 0x05, 1276 #else 1277 0x0f, 1278 #endif 1279 0x01, 1280 0x300, 1281 0, 1282 0x300, 1283 0x0a0, 1284 { 1285 { 1286 {0x04, 0xff}, 1287 0x00543210, 1288 0x2310, 1289 {0x70631425, 0x34527016, 0x43527610, 0x32104567}, 1290 {0x08, 0x08, 0x08, 0x08}, 1291 WDQLVL_PAT, 1292 {0, 0, 0, 0, 0, 0, 0, 0, 1293 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}, 1299 {0, 0, 0, 0}, 1300 {0, 0, 0, 0, 0, 0, 0, 0, 1301 0, 0, 0, 0, 0, 0, 0, 0, 1302 0, 0, 0, 0, 0, 0, 0, 0, 1303 0, 0, 0, 0, 0, 0, 0, 0} 1304 }, 1305 #if ((RCAR_DRAM_CHANNEL == 5) && (RCAR_DRAM_SPLIT == 2)) 1306 { 1307 {0x04, 0xff}, 1308 0x00543210, 1309 0x2301, 1310 {0x01327654, 0x02316457, 0x10234567, 0x01325467}, 1311 {0x08, 0x08, 0x08, 0x08}, 1312 WDQLVL_PAT, 1313 {0, 0, 0, 0, 0, 0, 0, 0, 1314 0, 0}, 1315 {0, 0, 0, 0}, 1316 {0, 0, 0, 0, 0, 0, 0, 0, 1317 0, 0, 0, 0, 0, 0, 0, 0, 1318 0, 0, 0, 0, 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 }, 1326 #else 1327 { 1328 {0x04, 0xff}, 1329 0x00105432, 1330 0x3210, 1331 {0x43256107, 0x07162354, 0x10234567, 0x01235467}, 1332 {0x08, 0x08, 0x08, 0x08}, 1333 WDQLVL_PAT, 1334 {0, 0, 0, 0, 0, 0, 0, 0, 1335 0, 0}, 1336 {0, 0, 0, 0}, 1337 {0, 0, 0, 0, 0, 0, 0, 0, 1338 0, 0, 0, 0, 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}, 1342 {0, 0, 0, 0, 0, 0, 0, 0, 1343 0, 0, 0, 0, 0, 0, 0, 0, 1344 0, 0, 0, 0, 0, 0, 0, 0, 1345 0, 0, 0, 0, 0, 0, 0, 0} 1346 }, 1347 #endif 1348 { 1349 {0x04, 0xff}, 1350 0x00543210, 1351 0x2301, 1352 {0x01327654, 0x02316457, 0x10234567, 0x01325467}, 1353 {0x08, 0x08, 0x08, 0x08}, 1354 WDQLVL_PAT, 1355 {0, 0, 0, 0, 0, 0, 0, 0, 1356 0, 0}, 1357 {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 0, 0, 0, 0, 0, 0, 0, 0}, 1362 {0, 0, 0, 0}, 1363 {0, 0, 0, 0, 0, 0, 0, 0, 1364 0, 0, 0, 0, 0, 0, 0, 0, 1365 0, 0, 0, 0, 0, 0, 0, 0, 1366 0, 0, 0, 0, 0, 0, 0, 0} 1367 }, 1368 { 1369 {0x04, 0xff}, 1370 0x00543210, 1371 0x2301, 1372 {0x12034765, 0x23105467, 0x23017645, 0x32106745}, 1373 {0x08, 0x08, 0x08, 0x08}, 1374 WDQLVL_PAT, 1375 {0, 0, 0, 0, 0, 0, 0, 0, 1376 0, 0}, 1377 {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, 1381 0, 0, 0, 0, 0, 0, 0, 0}, 1382 {0, 0, 0, 0}, 1383 {0, 0, 0, 0, 0, 0, 0, 0, 1384 0, 0, 0, 0, 0, 0, 0, 0, 1385 0, 0, 0, 0, 0, 0, 0, 0, 1386 0, 0, 0, 0, 0, 0, 0, 0} 1387 } 1388 } 1389 }, 1390 /* boardcnf[15] RENESAS KRIEK board with H3N */ 1391 { 1392 0x05, 1393 0x01, 1394 0x300, 1395 0, 1396 0x300, 1397 0x0a0, 1398 { 1399 { 1400 {0x02, 0x02}, 1401 0x00345201, 1402 0x3201, 1403 {0x01672543, 0x45367012, 0x45632107, 0x60715234}, 1404 {0x08, 0x08, 0x08, 0x08}, 1405 WDQLVL_PAT, 1406 {0, 0, 0, 0, 0, 0, 0, 0, 1407 0, 0}, 1408 {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 0, 0, 0, 0, 0, 0, 0, 0}, 1413 {0, 0, 0, 0}, 1414 {0, 0, 0, 0, 0, 0, 0, 0, 1415 0, 0, 0, 0, 0, 0, 0, 0, 1416 0, 0, 0, 0, 0, 0, 0, 0, 1417 0, 0, 0, 0, 0, 0, 0, 0} 1418 }, 1419 { 1420 {0x02, 0x02}, 1421 0x00302154, 1422 0x2310, 1423 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1424 {0x08, 0x08, 0x08, 0x08}, 1425 WDQLVL_PAT, 1426 {0, 0, 0, 0, 0, 0, 0, 0, 1427 0, 0}, 1428 {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, 1432 0, 0, 0, 0, 0, 0, 0, 0}, 1433 {0, 0, 0, 0}, 1434 {0, 0, 0, 0, 0, 0, 0, 0, 1435 0, 0, 0, 0, 0, 0, 0, 0, 1436 0, 0, 0, 0, 0, 0, 0, 0, 1437 0, 0, 0, 0, 0, 0, 0, 0} 1438 }, 1439 { 1440 {0x02, 0x02}, 1441 0x00302154, 1442 0x2310, 1443 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1444 {0x08, 0x08, 0x08, 0x08}, 1445 WDQLVL_PAT, 1446 {0, 0, 0, 0, 0, 0, 0, 0, 1447 0, 0}, 1448 {0, 0, 0, 0}, 1449 {0, 0, 0, 0, 0, 0, 0, 0, 1450 0, 0, 0, 0, 0, 0, 0, 0, 1451 0, 0, 0, 0, 0, 0, 0, 0, 1452 0, 0, 0, 0, 0, 0, 0, 0}, 1453 {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 }, 1459 { 1460 {0xff, 0xff}, 1461 0, 1462 0, 1463 {0, 0, 0, 0}, 1464 {0, 0, 0, 0}, 1465 WDQLVL_PAT, 1466 {0, 0, 0, 0, 0, 0, 0, 0, 1467 0, 0}, 1468 {0, 0, 0, 0}, 1469 {0, 0, 0, 0, 0, 0, 0, 0, 1470 0, 0, 0, 0, 0, 0, 0, 0, 1471 0, 0, 0, 0, 0, 0, 0, 0, 1472 0, 0, 0, 0, 0, 0, 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 } 1479 } 1480 }, 1481 /* boardcnf[16] RENESAS KRIEK-P2P board with M3-W/SoC */ 1482 { 1483 0x03, 1484 0x01, 1485 0x0320, 1486 0, 1487 0x0300, 1488 0x00a0, 1489 { 1490 { 1491 {0x04, 0x04}, 1492 0x520314FFFF523041, 1493 0x3201, 1494 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1495 {0x08, 0x08, 0x08, 0x08}, 1496 WDQLVL_PAT, 1497 {0, 0, 0, 0, 0, 0, 0, 0, 1498 0, 0, 0, 0, 0, 0, 0, 0}, 1499 {0, 0, 0, 0}, 1500 {0, 0, 0, 0, 0, 0, 0, 0, 1501 0, 0, 0, 0, 0, 0, 0, 0, 1502 0, 0, 0, 0, 0, 0, 0, 0, 1503 0, 0, 0, 0, 0, 0, 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 }, 1510 { 1511 {0x04, 0x04}, 1512 0x314250FFFF312405, 1513 0x2310, 1514 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1515 {0x08, 0x08, 0x08, 0x08}, 1516 WDQLVL_PAT, 1517 {0, 0, 0, 0, 0, 0, 0, 0, 1518 0, 0, 0, 0, 0, 0, 0, 0}, 1519 {0, 0, 0, 0}, 1520 {0, 0, 0, 0, 0, 0, 0, 0, 1521 0, 0, 0, 0, 0, 0, 0, 0, 1522 0, 0, 0, 0, 0, 0, 0, 0, 1523 0, 0, 0, 0, 0, 0, 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 } 1530 } 1531 }, 1532 /* boardcnf[17] RENESAS KRIEK-P2P board with M3-N/SoC */ 1533 { 1534 0x01, 1535 0x01, 1536 0x0300, 1537 0, 1538 0x0300, 1539 0x00a0, 1540 { 1541 { 1542 {0x04, 0x04}, 1543 0x520314FFFF523041, 1544 0x3201, 1545 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1546 {0x08, 0x08, 0x08, 0x08}, 1547 WDQLVL_PAT, 1548 {0, 0, 0, 0, 0, 0, 0, 0, 1549 0, 0, 0, 0, 0, 0, 0, 0}, 1550 {0, 0, 0, 0}, 1551 {0, 0, 0, 0, 0, 0, 0, 0, 1552 0, 0, 0, 0, 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}, 1556 {0, 0, 0, 0, 0, 0, 0, 0, 1557 0, 0, 0, 0, 0, 0, 0, 0, 1558 0, 0, 0, 0, 0, 0, 0, 0, 1559 0, 0, 0, 0, 0, 0, 0, 0} 1560 } 1561 } 1562 }, 1563 /* boardcnf[18] RENESAS SALVATOR-X board with M3-W/SIP(16Gbit 2rank) */ 1564 { 1565 0x03, 1566 0x01, 1567 0x02c0, 1568 0, 1569 0x0300, 1570 0x00a0, 1571 { 1572 { 1573 {0x04, 0x04}, 1574 0x00543210, 1575 0x3201, 1576 {0x70612543, 0x43251670, 0x45326170, 0x10672534}, 1577 {0x08, 0x08, 0x08, 0x08}, 1578 WDQLVL_PAT, 1579 {0, 0, 0, 0, 0, 0, 0, 0, 1580 0, 0}, 1581 {0, 0, 0, 0}, 1582 {0, 0, 0, 0, 0, 0, 0, 0, 1583 0, 0, 0, 0, 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}, 1587 {0, 0, 0, 0, 0, 0, 0, 0, 1588 0, 0, 0, 0, 0, 0, 0, 0, 1589 0, 0, 0, 0, 0, 0, 0, 0, 1590 0, 0, 0, 0, 0, 0, 0, 0} 1591 }, 1592 { 1593 {0x04, 0x04}, 1594 0x00543210, 1595 0x2310, 1596 {0x01327654, 0x34526107, 0x35421670, 0x70615324}, 1597 {0x08, 0x08, 0x08, 0x08}, 1598 WDQLVL_PAT, 1599 {0, 0, 0, 0, 0, 0, 0, 0, 1600 0, 0}, 1601 {0, 0, 0, 0}, 1602 {0, 0, 0, 0, 0, 0, 0, 0, 1603 0, 0, 0, 0, 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}, 1607 {0, 0, 0, 0, 0, 0, 0, 0, 1608 0, 0, 0, 0, 0, 0, 0, 0, 1609 0, 0, 0, 0, 0, 0, 0, 0, 1610 0, 0, 0, 0, 0, 0, 0, 0} 1611 } 1612 } 1613 }, 1614 /* boardcnf[19] RENESAS SALVATOR-X board with M3-W/SIP(16Gbit 1rank) */ 1615 { 1616 0x03, 1617 0x01, 1618 0x02c0, 1619 0, 1620 0x0300, 1621 0x00a0, 1622 { 1623 { 1624 {0x04, 0xff}, 1625 0x00543210, 1626 0x3201, 1627 {0x70612543, 0x43251670, 0x45326170, 0x10672534}, 1628 {0x08, 0x08, 0x08, 0x08}, 1629 WDQLVL_PAT, 1630 {0, 0, 0, 0, 0, 0, 0, 0, 1631 0, 0}, 1632 {0, 0, 0, 0}, 1633 {0, 0, 0, 0, 0, 0, 0, 0, 1634 0, 0, 0, 0, 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}, 1638 {0, 0, 0, 0, 0, 0, 0, 0, 1639 0, 0, 0, 0, 0, 0, 0, 0, 1640 0, 0, 0, 0, 0, 0, 0, 0, 1641 0, 0, 0, 0, 0, 0, 0, 0} 1642 }, 1643 { 1644 {0x04, 0xff}, 1645 0x00543210, 1646 0x2310, 1647 {0x01327654, 0x34526107, 0x35421670, 0x70615324}, 1648 {0x08, 0x08, 0x08, 0x08}, 1649 WDQLVL_PAT, 1650 {0, 0, 0, 0, 0, 0, 0, 0, 1651 0, 0}, 1652 {0, 0, 0, 0}, 1653 {0, 0, 0, 0, 0, 0, 0, 0, 1654 0, 0, 0, 0, 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}, 1658 {0, 0, 0, 0, 0, 0, 0, 0, 1659 0, 0, 0, 0, 0, 0, 0, 0, 1660 0, 0, 0, 0, 0, 0, 0, 0, 1661 0, 0, 0, 0, 0, 0, 0, 0} 1662 } 1663 } 1664 }, 1665 /* boardcnf[20] RENESAS KRIEK 16Gbit/2rank/2ch board with M3-W/SoC */ 1666 { 1667 0x03, 1668 0x01, 1669 0x02c0, 1670 0, 1671 0x0300, 1672 0x00a0, 1673 { 1674 { 1675 {0x04, 0x04}, 1676 0x00345201, 1677 0x3201, 1678 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1679 {0x08, 0x08, 0x08, 0x08}, 1680 WDQLVL_PAT, 1681 {0, 0, 0, 0, 0, 0, 0, 0, 1682 0, 0}, 1683 {0, 0, 0, 0}, 1684 {0, 0, 0, 0, 0, 0, 0, 0, 1685 0, 0, 0, 0, 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}, 1689 {0, 0, 0, 0, 0, 0, 0, 0, 1690 0, 0, 0, 0, 0, 0, 0, 0, 1691 0, 0, 0, 0, 0, 0, 0, 0, 1692 0, 0, 0, 0, 0, 0, 0, 0} 1693 }, 1694 { 1695 {0x04, 0x04}, 1696 0x00302154, 1697 0x2310, 1698 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1699 {0x08, 0x08, 0x08, 0x08}, 1700 WDQLVL_PAT, 1701 {0, 0, 0, 0, 0, 0, 0, 0, 1702 0, 0}, 1703 {0, 0, 0, 0}, 1704 {0, 0, 0, 0, 0, 0, 0, 0, 1705 0, 0, 0, 0, 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}, 1709 {0, 0, 0, 0, 0, 0, 0, 0, 1710 0, 0, 0, 0, 0, 0, 0, 0, 1711 0, 0, 0, 0, 0, 0, 0, 0, 1712 0, 0, 0, 0, 0, 0, 0, 0} 1713 } 1714 } 1715 }, 1716 /* boardcnf[21] RENESAS KRIEK 16Gbit/1rank/2ch board with M3-W/SoC */ 1717 { 1718 0x03, 1719 0x01, 1720 0x02c0, 1721 0, 1722 0x0300, 1723 0x00a0, 1724 { 1725 { 1726 {0x04, 0xff}, 1727 0x00345201, 1728 0x3201, 1729 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1730 {0x08, 0x08, 0x08, 0x08}, 1731 WDQLVL_PAT, 1732 {0, 0, 0, 0, 0, 0, 0, 0, 1733 0, 0}, 1734 {0, 0, 0, 0}, 1735 {0, 0, 0, 0, 0, 0, 0, 0, 1736 0, 0, 0, 0, 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}, 1740 {0, 0, 0, 0, 0, 0, 0, 0, 1741 0, 0, 0, 0, 0, 0, 0, 0, 1742 0, 0, 0, 0, 0, 0, 0, 0, 1743 0, 0, 0, 0, 0, 0, 0, 0} 1744 }, 1745 { 1746 {0x04, 0xff}, 1747 0x00302154, 1748 0x2310, 1749 {0x01672543, 0x45361207, 0x45632107, 0x60715234}, 1750 {0x08, 0x08, 0x08, 0x08}, 1751 WDQLVL_PAT, 1752 {0, 0, 0, 0, 0, 0, 0, 0, 1753 0, 0}, 1754 {0, 0, 0, 0}, 1755 {0, 0, 0, 0, 0, 0, 0, 0, 1756 0, 0, 0, 0, 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}, 1760 {0, 0, 0, 0, 0, 0, 0, 0, 1761 0, 0, 0, 0, 0, 0, 0, 0, 1762 0, 0, 0, 0, 0, 0, 0, 0, 1763 0, 0, 0, 0, 0, 0, 0, 0} 1764 } 1765 } 1766 } 1767 }; 1768 #endif /* RZG_SOC == 1 */ 1769 1770 void boardcnf_get_brd_clk(uint32_t brd, uint32_t *clk, uint32_t *div) 1771 { 1772 uint32_t md; 1773 1774 if ((prr_product == PRR_PRODUCT_H3) && (prr_cut == PRR_PRODUCT_10)) { 1775 *clk = 50; 1776 *div = 3; 1777 } else { 1778 md = (mmio_read_32(RST_MODEMR) >> 13) & 0x3; 1779 switch (md) { 1780 case 0x0: 1781 *clk = 50; 1782 *div = 3; 1783 break; 1784 case 0x1: 1785 *clk = 60; 1786 *div = 3; 1787 break; 1788 case 0x2: 1789 *clk = 75; 1790 *div = 3; 1791 break; 1792 case 0x3: 1793 *clk = 100; 1794 *div = 3; 1795 break; 1796 } 1797 } 1798 (void)brd; 1799 } 1800 1801 void boardcnf_get_ddr_mbps(uint32_t brd, uint32_t *mbps, uint32_t *div) 1802 { 1803 uint32_t md; 1804 1805 if (prr_product == PRR_PRODUCT_V3H) { 1806 md = (mmio_read_32(RST_MODEMR) >> 19) & 0x1; 1807 md = (md | (md << 1)) & 0x3; /* 0 or 3 */ 1808 } else { 1809 md = (mmio_read_32(RST_MODEMR) >> 17) & 0x5; 1810 md = (md | (md >> 1)) & 0x3; 1811 } 1812 switch (md) { 1813 case 0x0: 1814 *mbps = 3200; 1815 *div = 1; 1816 break; 1817 case 0x1: 1818 *mbps = 2800; 1819 *div = 1; 1820 break; 1821 case 0x2: 1822 *mbps = 2400; 1823 *div = 1; 1824 break; 1825 case 0x3: 1826 *mbps = 1600; 1827 *div = 1; 1828 break; 1829 } 1830 (void)brd; 1831 } 1832 1833 #define _def_REFPERIOD 1890 1834 1835 #define M3_SAMPLE_TT_A84 0xB866CC10, 0x3B250421 1836 #define M3_SAMPLE_TT_A85 0xB866CC10, 0x3AA50421 1837 #define M3_SAMPLE_TT_A86 0xB866CC10, 0x3AA48421 1838 #define M3_SAMPLE_FF_B45 0xB866CC10, 0x3AB00C21 1839 #define M3_SAMPLE_FF_B49 0xB866CC10, 0x39B10C21 1840 #define M3_SAMPLE_FF_B56 0xB866CC10, 0x3AAF8C21 1841 #define M3_SAMPLE_SS_E24 0xB866CC10, 0x3BA39421 1842 #define M3_SAMPLE_SS_E28 0xB866CC10, 0x3C231421 1843 #define M3_SAMPLE_SS_E32 0xB866CC10, 0x3C241421 1844 1845 static const uint32_t termcode_by_sample[20][3] = { 1846 {M3_SAMPLE_TT_A84, 0x000158D5}, 1847 {M3_SAMPLE_TT_A85, 0x00015955}, 1848 {M3_SAMPLE_TT_A86, 0x00015955}, 1849 {M3_SAMPLE_FF_B45, 0x00015690}, 1850 {M3_SAMPLE_FF_B49, 0x00015753}, 1851 {M3_SAMPLE_FF_B56, 0x00015793}, 1852 {M3_SAMPLE_SS_E24, 0x00015996}, 1853 {M3_SAMPLE_SS_E28, 0x000159D7}, 1854 {M3_SAMPLE_SS_E32, 0x00015997}, 1855 {0xFFFFFFFF, 0xFFFFFFFF, 0x0001554F} 1856 }; 1857 1858 #ifdef BOARD_JUDGE_AUTO 1859 /* 1860 * SAMPLE board detect function 1861 */ 1862 #define PFC_PMMR 0xE6060000U 1863 #define PFC_PUEN5 0xE6060414U 1864 #define PFC_PUEN6 0xE6060418U 1865 #define PFC_PUD5 0xE6060454U 1866 #define PFC_PUD6 0xE6060458U 1867 #define GPIO_INDT5 0xE605500CU 1868 #define GPIO_GPSR6 0xE6060118U 1869 1870 #if (RCAR_GEN3_ULCB == 0) && (RZG_SOC == 0) 1871 static void pfc_write_and_poll(uint32_t a, uint32_t v) 1872 { 1873 mmio_write_32(PFC_PMMR, ~v); 1874 v = ~mmio_read_32(PFC_PMMR); 1875 mmio_write_32(a, v); 1876 while (v != mmio_read_32(a)) 1877 ; 1878 dsb_sev(); 1879 } 1880 #endif 1881 1882 #ifndef RCAR_GEN3_ULCB 1883 #define RCAR_GEN3_ULCB 0 1884 #endif 1885 1886 #if (RCAR_GEN3_ULCB == 0) && (RZG_SOC == 0) /* non Starter Kit */ 1887 1888 static uint32_t opencheck_SSI_WS6(void) 1889 { 1890 uint32_t dataL, down, up; 1891 uint32_t gpsr6_bak; 1892 uint32_t puen5_bak; 1893 uint32_t pud5_bak; 1894 1895 gpsr6_bak = mmio_read_32(GPIO_GPSR6); 1896 puen5_bak = mmio_read_32(PFC_PUEN5); 1897 pud5_bak = mmio_read_32(PFC_PUD5); 1898 dsb_sev(); 1899 1900 dataL = (gpsr6_bak & ~BIT(15)); 1901 pfc_write_and_poll(GPIO_GPSR6, dataL); 1902 1903 /* Pull-Up/Down Enable (PUEN5[22]=1) */ 1904 dataL = puen5_bak; 1905 dataL |= (BIT(22)); 1906 pfc_write_and_poll(PFC_PUEN5, dataL); 1907 1908 /* Pull-Down-Enable (PUD5[22]=0, PUEN5[22]=1) */ 1909 dataL = pud5_bak; 1910 dataL &= ~(BIT(22)); 1911 pfc_write_and_poll(PFC_PUD5, dataL); 1912 /* GPSR6[15]=SSI_WS6 */ 1913 rcar_micro_delay(10); 1914 down = (mmio_read_32(GPIO_INDT6) >> 15) & 0x1; 1915 dsb_sev(); 1916 1917 /* Pull-Up-Enable (PUD5[22]=1, PUEN5[22]=1) */ 1918 dataL = pud5_bak; 1919 dataL |= (BIT(22)); 1920 pfc_write_and_poll(PFC_PUD5, dataL); 1921 1922 /* GPSR6[15]=SSI_WS6 */ 1923 rcar_micro_delay(10); 1924 up = (mmio_read_32(GPIO_INDT6) >> 15) & 0x1; 1925 1926 dsb_sev(); 1927 1928 pfc_write_and_poll(GPIO_GPSR6, gpsr6_bak); 1929 pfc_write_and_poll(PFC_PUEN5, puen5_bak); 1930 pfc_write_and_poll(PFC_PUD5, pud5_bak); 1931 1932 if (down == up) { 1933 /* Same = Connect */ 1934 return 0; 1935 } 1936 1937 /* Diff = Open */ 1938 return 1; 1939 } 1940 1941 #endif 1942 1943 #if (RZG_SOC == 1) 1944 #define LPDDR4_2RANK (0x01U << 25U) 1945 1946 static uint32_t rzg2_board_judge(void) 1947 { 1948 uint32_t brd; 1949 1950 switch (prr_product) { 1951 case PRR_PRODUCT_M3: 1952 brd = 1U; 1953 if ((mmio_read_32(PRR) & PRR_CUT_MASK) != RCAR_M3_CUT_VER11) { 1954 if ((mmio_read_32(GPIO_INDT5) & LPDDR4_2RANK) == 0U) { 1955 brd = 0U; 1956 } 1957 } 1958 break; 1959 case PRR_PRODUCT_H3: 1960 brd = 2U; 1961 break; 1962 case PRR_PRODUCT_M3N: 1963 brd = 3U; 1964 break; 1965 default: 1966 brd = 99U; 1967 } 1968 1969 return brd; 1970 } 1971 #endif /* RZG_SOC == 1 */ 1972 1973 #if (RZG_SOC == 0) && (RCAR_DRAM_LPDDR4_MEMCONF != 0) 1974 static uint32_t ddr_rank_judge(void) 1975 { 1976 uint32_t brd; 1977 1978 #if (RCAR_DRAM_MEMRANK == 0) 1979 int32_t ret; 1980 uint32_t type = 0U; 1981 uint32_t rev = 0U; 1982 1983 brd = 99U; 1984 ret = rcar_get_board_type(&type, &rev); 1985 if ((ret == 0) && (rev != 0xFFU)) { 1986 if (type == (uint32_t)BOARD_SALVATOR_XS) { 1987 if (rev == 0x11U) { 1988 brd = 14U; 1989 } else { 1990 brd = 8U; 1991 } 1992 } else if (type == (uint32_t)BOARD_STARTER_KIT_PRE) { 1993 if (rev == 0x21U) { 1994 brd = 14U; 1995 } else { 1996 brd = 8U; 1997 } 1998 } 1999 } 2000 #elif (RCAR_DRAM_MEMRANK == 1) 2001 brd = 14U; 2002 #elif (RCAR_DRAM_MEMRANK == 2) 2003 brd = 8U; 2004 #else 2005 #error Invalid value was set to RCAR_DRAM_MEMRANK 2006 #endif /* (RCAR_DRAM_MEMRANK == 0) */ 2007 return brd; 2008 } 2009 #endif /* (RCAR_DRAM_LPDDR4_MEMCONF != 0) */ 2010 2011 static uint32_t _board_judge(void) 2012 { 2013 uint32_t brd; 2014 2015 #if (RZG_SOC == 1) 2016 brd = rzg2_board_judge(); 2017 #else 2018 #if (RCAR_GEN3_ULCB == 1) 2019 /* Starter Kit */ 2020 if (prr_product == PRR_PRODUCT_H3) { 2021 if (prr_cut <= PRR_PRODUCT_11) { 2022 /* RENESAS Starter Kit(H3 Ver.1.x/SIP) board */ 2023 brd = 2; 2024 } else { 2025 /* RENESAS Starter Kit(H3 Ver.2.0 or later/SIP) board */ 2026 #if (RCAR_DRAM_LPDDR4_MEMCONF == 0) 2027 brd = 7; 2028 #else 2029 brd = ddr_rank_judge(); 2030 #endif 2031 } 2032 } else if (prr_product == PRR_PRODUCT_M3) { 2033 if (prr_cut >= PRR_PRODUCT_30) { 2034 /* RENESAS Starter Kit (M3-W Ver.3.0/SIP) */ 2035 brd = 18; 2036 } else { 2037 /* RENESAS Starter Kit(M3-W/SIP 8Gbit 1rank) board */ 2038 brd = 3; 2039 } 2040 } else { 2041 /* RENESAS Starter Kit(M3-N/SIP) board */ 2042 brd = 11; 2043 } 2044 #else 2045 uint32_t usb2_ovc_open; 2046 2047 usb2_ovc_open = opencheck_SSI_WS6(); 2048 2049 /* RENESAS Eva-board */ 2050 brd = 99; 2051 if (prr_product == PRR_PRODUCT_V3H) { 2052 /* RENESAS Condor board */ 2053 brd = 12; 2054 } else if (usb2_ovc_open) { 2055 if (prr_product == PRR_PRODUCT_M3N) { 2056 /* RENESAS Kriek board with M3-N */ 2057 brd = 10; 2058 } else if (prr_product == PRR_PRODUCT_M3) { 2059 /* RENESAS Kriek board with M3-W */ 2060 brd = 1; 2061 } else if ((prr_product == PRR_PRODUCT_H3) && 2062 (prr_cut <= PRR_PRODUCT_11)) { 2063 /* RENESAS Kriek board with PM3 */ 2064 brd = 13; 2065 } else if ((prr_product == PRR_PRODUCT_H3) && 2066 (prr_cut > PRR_PRODUCT_20)) { 2067 /* RENESAS Kriek board with H3N */ 2068 brd = 15; 2069 } 2070 } else { 2071 if (prr_product == PRR_PRODUCT_H3) { 2072 if (prr_cut <= PRR_PRODUCT_11) { 2073 /* RENESAS SALVATOR-X (H3 Ver.1.x/SIP) */ 2074 brd = 2; 2075 } else if (prr_cut < PRR_PRODUCT_30) { 2076 /* RENESAS SALVATOR-X (H3 Ver.2.0/SIP) */ 2077 brd = 7; // 8Gbit/1rank 2078 } else { 2079 /* RENESAS SALVATOR-X (H3 Ver.3.0/SIP) */ 2080 #if (RCAR_DRAM_LPDDR4_MEMCONF == 0) 2081 brd = 7; 2082 #else 2083 brd = ddr_rank_judge(); 2084 #endif 2085 } 2086 } else if (prr_product == PRR_PRODUCT_M3N) { 2087 /* RENESAS SALVATOR-X (M3-N/SIP) */ 2088 brd = 11; 2089 } else if ((prr_product == PRR_PRODUCT_M3) && 2090 (prr_cut <= PRR_PRODUCT_20)) { 2091 /* RENESAS SALVATOR-X (M3-W/SIP) */ 2092 brd = 0; 2093 } else if ((prr_product == PRR_PRODUCT_M3) && 2094 (prr_cut < PRR_PRODUCT_30)) { 2095 /* RENESAS SALVATOR-X (M3-W Ver.1.x/SIP) */ 2096 brd = 19; 2097 } else if ((prr_product == PRR_PRODUCT_M3) && 2098 (prr_cut >= PRR_PRODUCT_30)) { 2099 /* RENESAS SALVATOR-X (M3-W ver.3.0/SIP) */ 2100 brd = 18; 2101 } 2102 } 2103 #endif 2104 #endif /* RZG_SOC == 1 */ 2105 2106 return brd; 2107 } 2108 #endif 2109