1 /************************************************************************ 2 * 3 * Copyright (c) 2013-2015 Intel Corporation. 4 * 5 * This program and the accompanying materials 6 * are licensed and made available under the terms and conditions of the BSD License 7 * which accompanies this distribution. The full text of the license may be found at 8 * http://opensource.org/licenses/bsd-license.php 9 * 10 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 * 13 * MCU register definition 14 * 15 ************************************************************************/ 16 #ifndef __IOSF_DEFINITIONS_H 17 #define __IOSF_DEFINITIONS_H 18 19 // Define each of the IOSF-SB register offsets used by MRC. 20 21 22 // MCU registers (DUNIT): 23 // ==== 24 #define DRP 0x0000 25 #define DTR0 0x0001 26 #define DTR1 0x0002 27 #define DTR2 0x0003 28 #define DTR3 0x0004 29 #define DTR4 0x0005 30 #define DPMC0 0x0006 31 #define DPMC1 0x0007 32 #define DRFC 0x0008 33 #define DSCH 0x0009 34 #define DCAL 0x000A 35 #define DRMC 0x000B 36 #define PMSTS 0x000C 37 #define DCO 0x000F 38 #define DSTAT 0x0020 39 #define DECCCTRL 0x0060 40 #define DFUSESTAT 0x0070 41 #define SCRMSEED 0x0080 42 #define SCRMLO 0x0081 43 #define SCRMHI 0x0082 44 45 #define MCU_CH_OFFSET 0x0040 46 #define MCU_RK_OFFSET 0x0020 47 48 //// 49 // 50 // BEGIN DUnit register definition 51 // 52 #pragma pack(1) 53 typedef union { 54 uint32_t raw; 55 struct { 56 uint32_t rank0Enabled :1; /**< BIT [0] Rank 0 Enable */ 57 uint32_t rank1Enabled :1; /**< BIT [1] Rank 1 Enable */ 58 uint32_t reserved0 :2; 59 uint32_t dimm0DevWidth :2; /**< BIT [5:4] DIMM 0 Device Width (Rank0&1) */ 60 uint32_t dimm0DevDensity :2; /**< BIT [7:6] DIMM 0 Device Density */ 61 uint32_t reserved1 :1; 62 uint32_t dimm1DevWidth :2; /**< BIT [10:9] DIMM 1 Device Width (Rank2&3) */ 63 uint32_t dimm1DevDensity :2; /**< BIT [12:11] DIMM 1 Device Density */ 64 uint32_t split64 :1; /**< BIT [13] split 64B transactions */ 65 uint32_t addressMap :2; /**< BIT [15:14] Address Map select */ 66 uint32_t reserved3 :14; 67 uint32_t mode32 :1; /**< BIT [30] Select 32bit data interface*/ 68 uint32_t reserved4 :1; 69 } field; 70 } RegDRP; /**< DRAM Rank Population and Interface Register */ 71 #pragma pack() 72 73 74 #pragma pack(1) 75 typedef union { 76 uint32_t raw; 77 struct { 78 uint32_t dramFrequency :2; /**< DRAM Frequency (000=800,001=1033,010=1333) */ 79 uint32_t reserved1 :2; 80 uint32_t tRP :4; /**< bit [7:4] Precharge to Activate Delay */ 81 uint32_t tRCD :4; /**< bit [11:8] Activate to CAS Delay */ 82 uint32_t tCL :3; /**< bit [14:12] CAS Latency */ 83 uint32_t reserved4 :1; 84 uint32_t tXS :1; /**< SRX Delay */ 85 uint32_t reserved5 :1; 86 uint32_t tXSDLL :1; /**< SRX To DLL Delay */ 87 uint32_t reserved6 :1; 88 uint32_t tZQCS :1; /**< bit [20] ZQTS recovery Latncy */ 89 uint32_t reserved7 :1; 90 uint32_t tZQCL :1; /**< bit [22] ZQCL recovery Latncy */ 91 uint32_t reserved8 :1; 92 uint32_t pmeDelay :2; /**< bit [25:24] Power mode entry delay */ 93 uint32_t reserved9 :2; 94 uint32_t CKEDLY :4; /**< bit [31:28] */ 95 } field; 96 } RegDTR0; /**< DRAM Timing Register 0 */ 97 #pragma pack() 98 99 #pragma pack(1) 100 typedef union { 101 uint32_t raw; 102 struct { 103 uint32_t tWCL :3; /**< bit [2:0] CAS Write Latency */ 104 uint32_t reserved1 :1; 105 uint32_t tCMD :2; /**< bit [5:4] Command transport duration */ 106 uint32_t reserved2 :2; 107 uint32_t tWTP :4; /**< Write to Precharge */ 108 uint32_t tCCD :2; /**< CAS to CAS delay */ 109 uint32_t reserved4 :2; 110 uint32_t tFAW :4; /**< Four bank Activation Window*/ 111 uint32_t tRAS :4; /**< Row Activation Period: */ 112 uint32_t tRRD :2; /**<Row activation to Row activation Delay */ 113 uint32_t reserved5 :2; 114 uint32_t tRTP :3; /**<Read to Precharge Delay */ 115 uint32_t reserved6 :1; 116 } field; 117 } RegDTR1; /**< DRAM Timing Register 1 */ 118 #pragma pack() 119 120 #pragma pack(1) 121 typedef union { 122 uint32_t raw; 123 struct { 124 uint32_t tRRDR :3; /**< RD to RD from different ranks, same DIMM */ 125 uint32_t reserved1 :5; 126 uint32_t tWWDR :3; /**< WR to WR from different ranks, same DIMM. */ 127 uint32_t reserved3 :5; 128 uint32_t tRWDR :4; /**< bit [19:16] RD to WR from different ranks, same DIMM. */ 129 uint32_t reserved5 :12; 130 } field; 131 } RegDTR2; /**< DRAM Timing Register 2 */ 132 #pragma pack() 133 134 #pragma pack(1) 135 typedef union { 136 uint32_t raw; 137 struct { 138 uint32_t tWRDR :3; /**< WR to RD from different ranks, same DIMM. */ 139 uint32_t reserved1 :1; 140 uint32_t tWRDD :3; /**< WR to RD from different DIMM. */ 141 uint32_t reserved2 :1; 142 uint32_t tRWSR :4; /**< RD to WR Same Rank. */ 143 uint32_t reserved3 :1; 144 uint32_t tWRSR :4; /**< WR to RD Same Rank. */ 145 uint32_t reserved4 :5; 146 uint32_t tXP :2; /**< Time from CKE set on to any command. */ 147 uint32_t PWD_DLY :4; /**< Extended Power-Down Delay. */ 148 uint32_t EnDeRate :1; 149 uint32_t DeRateOvr :1; 150 uint32_t DeRateStat :1; 151 uint32_t reserved5 :1; 152 } field; 153 } RegDTR3; /**< DRAM Timing Register 3 */ 154 #pragma pack() 155 156 157 #pragma pack(1) 158 typedef union { 159 uint32_t raw; 160 struct { 161 uint32_t WRODTSTRT :2; /**< WR command to ODT assert delay */ 162 uint32_t reserved1 :2; 163 uint32_t WRODTSTOP :3; /**< Write command to ODT de-assert delay. */ 164 uint32_t reserved2 :1; 165 uint32_t RDODTSTRT :3; /**< Read command to ODT assert delay */ 166 uint32_t reserved3 :1; 167 uint32_t RDODTSTOP :3; /**< Read command to ODT de-assert delay */ 168 uint32_t ODTDIS :1; /**< ODT disable */ 169 uint32_t TRGSTRDIS :1; /**< Write target rank is not stretched */ 170 uint32_t RDODTDIS :1; /**< Disable Read ODT */ 171 uint32_t WRBODTDIS :1; /**< Disable Write ODT */ 172 uint32_t reserved5 :13; 173 } field; 174 } RegDTR4; /**< DRAM Timing Register 3 */ 175 #pragma pack() 176 177 #pragma pack(1) 178 typedef union { 179 uint32_t raw; 180 struct { 181 uint32_t SREntryDelay :8; /**< Self-Refresh Entry Delay: */ 182 uint32_t powerModeOpCode :5; /**< SPID Power Mode Opcode */ 183 uint32_t reserved1 :3; 184 uint32_t PCLSTO :3; /**< Page Close Timeout Period */ 185 uint32_t reserved2 :1; 186 uint32_t PCLSWKOK :1; /**< Wake Allowed For Page Close Timeout */ 187 uint32_t PREAPWDEN :1; /**< Send Precharge All to rank before entering Power-Down mode. */ 188 uint32_t reserved3 :1; 189 uint32_t DYNSREN :1; /**< Dynamic Self-Refresh */ 190 uint32_t CLKGTDIS :1; /**< Clock Gating Disabled*/ 191 uint32_t DISPWRDN :1; /**< Disable Power Down*/ 192 uint32_t reserved4 :2; 193 uint32_t REUTCLKGTDIS :1; 194 uint32_t ENPHYCLKGATE :1; 195 uint32_t reserved5 :2; 196 } field; 197 } RegDPMC0; /**< DRAM Power Management Control Register 0 */ 198 #pragma pack() 199 200 #pragma pack(1) 201 typedef union { 202 uint32_t raw; 203 struct { 204 uint32_t REFWMLO :4; /**< Refresh Opportunistic Watermark */ 205 uint32_t REFWMHI :4; /**< Refresh High Watermark*/ 206 uint32_t REFWMPNC :4; /**< Refresh Panic Watermark */ 207 uint32_t tREFI :3; /**< bit [14:12] Refresh Period */ 208 uint32_t reserved1 :1; 209 uint32_t REFCNTMAX :2; /**< Refresh Max tREFI Interval */ 210 uint32_t reserved2 :2; 211 uint32_t REFSKEWDIS :1; /**< tREFI counters */ 212 uint32_t REFDBTCLR :1; 213 uint32_t reserved3 :2; 214 uint32_t CuRefRate :3; 215 uint32_t DisRefBW :1; 216 uint32_t reserved4 :4; 217 } field; 218 } RegDRCF; /**< DRAM Refresh Control Register*/ 219 #pragma pack() 220 221 #pragma pack(1) 222 typedef union { 223 uint32_t raw; 224 struct { 225 uint32_t reserved1 :8; 226 uint32_t ZQCINT :3; /**< ZQ Calibration Short Interval: */ 227 uint32_t reserved2 :1; 228 uint32_t SRXZQCL :2; /** < ZQ Calibration Length */ 229 uint32_t ZQCalType :1; 230 uint32_t ZQCalStart :1; 231 uint32_t TQPollStart :1; 232 uint32_t TQPollRS :2; 233 uint32_t reserved3 :5; 234 uint32_t MRRData :8; /**< bit[31:24] */ 235 } field; 236 } RegDCAL; /**< DRAM Calibration Control*/ 237 #pragma pack() 238 239 #pragma pack(1) 240 typedef union { 241 uint32_t raw; 242 struct { 243 uint32_t OOOAGETRH :5; /**< Out-of-Order Aging Threshold */ 244 uint32_t reserved1 :3; 245 uint32_t OOODIS :1; /**< Out-of-Order Disable */ 246 uint32_t OOOST3DIS :1; /**< Out-of-Order Disabled when RequestBD_Status is 3. */ 247 uint32_t reserved2 :2; 248 uint32_t NEWBYPDIS :1; 249 uint32_t reserved3 :3; 250 uint32_t IPREQMAX :3; /** < Max In-Progress Requests stored in MC */ 251 uint32_t reserved4 :13; 252 } field; 253 } RegDSCH; /**< DRAM Scheduler Control Register */ 254 #pragma pack() 255 256 #pragma pack(1) 257 typedef union { 258 uint32_t raw; 259 struct { 260 uint32_t DRPLOCK :1; /**< DRP lock bit */ 261 uint32_t reserved1 :7; 262 uint32_t REUTLOCK :1; /**< REUT lock bit */ 263 uint32_t reserved2 :19; 264 uint32_t PMICTL :1; /**< PRI Control Select: 0-memory_manager, 1-hte */ 265 uint32_t PMIDIS :1; /**< PMIDIS Should be set is using IOSF-SB RW */ 266 uint32_t DIOIC :1; /**< DDRIO initialization is complete */ 267 uint32_t IC :1; /**< D-unit Initialization Complete */ 268 } field; 269 } RegDCO; /**< DRAM Controller Operation Register*/ 270 #pragma pack() 271 272 #pragma pack(1) 273 typedef union { 274 uint32_t raw; 275 struct { 276 uint32_t SBEEN :1; /**< Enable Single Bit Error Detection and Correction */ 277 uint32_t DBEEN :1; /**< Enable Double Bit Error Detection */ 278 uint32_t CBOEN :3; /**< Enable ECC Check Bits Override */ 279 uint32_t SYNSEL :2; /**< ECC Syndrome Bits Select for Observation */ 280 uint32_t CLRSBECNT :1; /**< Clear ECC Single Bit Error Count */ 281 uint32_t CBOV :8; /**< ECC Check Bits Override Value */ 282 uint32_t reserved1 :1; /**< */ 283 uint32_t ENCBGEN :1; /**< Enable Generation of ECC Check Bits */ 284 uint32_t ENCBGESWIZ :1; /**< Enable Same Chip ECC Byte Lane Swizzle */ 285 286 } field; 287 } RegDECCCTRL; /**< DRAM ECC Control Register */ 288 #pragma pack() 289 290 291 #pragma pack(1) 292 typedef union { 293 uint32_t raw; 294 struct { 295 uint32_t FUS_DUN_ECC_DIS :1; 296 uint32_t FUS_DUN_MAX_SUPPORTED_MEMORY :3; 297 uint32_t FUS_DUN_MAX_DEVDEN :2; 298 uint32_t RESERVED1 :1; 299 uint32_t FUS_DUN_RANK2_DIS :1; 300 uint32_t FUS_DUN_OOO_DIS :1; 301 uint32_t FUS_DUN_MEMX8_DIS :1; 302 uint32_t FUS_DUN_MEMX16_DIS :1; 303 uint32_t RESERVED2 :1; 304 uint32_t FUS_DUN_1N_DIS :1; 305 uint32_t FUS_DUN_DQ_SCRAMBLER_DIS :1; 306 uint32_t RESERVED3 :1; 307 uint32_t FUS_DUN_32BIT_DRAM_IFC :1; 308 } field; 309 } RegDFUSESTAT; 310 #pragma pack() 311 312 // 313 // END DUnit register definition 314 // 315 //// 316 317 318 319 //// 320 // 321 // DRAM Initialization Structures used in JEDEC Message Bus Commands 322 // 323 324 #pragma pack(1) 325 typedef union { 326 uint32_t raw; 327 struct { 328 unsigned command :3; /**< Command: 000-MRS,001-Refresh,010-Pre-charge,011-Activate,110-ZQ,111-NOP */ 329 unsigned bankAddress :3; /**< Bank Address (BA[2:0]) */ 330 unsigned BL :2; /**< Burst Length, CDV:1*/ 331 unsigned CL :1; /**< CL Reserved CDV:0 */ 332 unsigned RBT :1; /**< Read Burst Type */ 333 unsigned casLatency :3; /**< cas Latency */ 334 unsigned TM :1; /**< Test mode */ 335 unsigned dllReset :1; /**< DLL Reset */ 336 unsigned writeRecovery :3; /**< Write Recovery for Auto Pre-Charge: 001=2,010=3,011=4,100=5,101=6 */ 337 unsigned PPD :1; /**< DLL Control for Precharge Power-Down CDV:1 */ 338 unsigned reserved1 :3; 339 unsigned rankSelect :4; /**< Rank Select */ 340 unsigned reserved2 :6; 341 } field; 342 } DramInitDDR3MRS0; /**< DDR3 Mode Register Set (MRS) Command */ 343 #pragma pack() 344 345 #pragma pack(1) 346 typedef union { 347 uint32_t raw; 348 struct { 349 unsigned command :3; /**< Command: 000-MRS,001-Refresh,010-Pre-charge,011-Activate,110-ZQ,111-NOP */ 350 unsigned bankAddress :3; /**< Bank Address (BA[2:0]) */ 351 unsigned dllEnabled :1; /**< CDV=0 */ 352 unsigned DIC0 :1; /**< Output Driver Impedance Control */ 353 unsigned rttNom0 :1; /**< RTT_nom[0] */ 354 unsigned MRC_AL :2; /**< Additive Latency = 0 */ 355 unsigned DIC1 :1; /**< Reserved */ 356 unsigned rttNom1 :1; /**< RTT_nom[1] */ 357 unsigned wlEnabled :1; /**< Write Leveling Enable */ 358 unsigned reserved1 :1; 359 unsigned rttNom2 :1; /** < RTT_nom[2] */ 360 unsigned reserved2 :1; 361 unsigned TDQS :1; /**< TDQS Enable */ 362 unsigned Qoff :1; /**< Output Buffers Disabled */ 363 unsigned reserved3 :3; 364 unsigned rankSelect :4; /**< Rank Select */ 365 unsigned reserved4 :6; 366 } field; 367 } DramInitDDR3EMR1; /**< DDR3 Extended Mode Register 1 Set (EMRS1) Command */ 368 #pragma pack() 369 370 #pragma pack(1) 371 typedef union { 372 uint32_t raw; 373 struct { 374 uint32_t command :3; /**< Command: 000-MRS,001-Refresh,010-Pre-charge,011-Activate,110-ZQ,111-NOP */ 375 uint32_t bankAddress :3; /**< Bank Address (BA[2:0]) */ 376 uint32_t PASR :3; /**< Partial Array Self-Refresh */ 377 uint32_t CWL :3; /**< CAS Write Latency */ 378 uint32_t ASR :1; /**< Auto Self-Refresh */ 379 uint32_t SRT :1; /**< SR Temperature Range = 0*/ 380 uint32_t reserved1 :1; 381 uint32_t rtt_WR :2; /**< Rtt_WR */ 382 uint32_t reserved2 :5; 383 uint32_t rankSelect :4; /**< Rank Select */ 384 uint32_t reserved3 :6; 385 } field; 386 } DramInitDDR3EMR2; /**< DDR3 Extended Mode Register 2 Set (EMRS2) Command */ 387 #pragma pack() 388 389 #pragma pack(1) 390 typedef union { 391 uint32_t raw; 392 struct { 393 uint32_t command :3; /**< Command: 000-MRS,001-Refresh,010-Pre-charge,011-Activate,110-ZQ,111-NOP */ 394 uint32_t bankAddress :3; /**< Bank Address (BA[2:0]) */ 395 uint32_t MPR_Location :2; /**< MPR Location */ 396 uint32_t MPR :1; /**< MPR: Multi Purpose Register */ 397 uint32_t reserved1 :13; 398 uint32_t rankSelect :4; /**< Rank Select */ 399 uint32_t reserved2 :6; 400 } field; 401 } DramInitDDR3EMR3; /**< DDR3 Extended Mode Register 2 Set (EMRS2) Command */ 402 #pragma pack() 403 404 #pragma pack(1) 405 typedef union { 406 uint32_t raw; 407 struct { 408 uint32_t command :3; /**< Command: 000-MRS,001-Refresh,010-Pre-charge,011-Activate,110 - ZQ Calibration,111-NOP */ 409 uint32_t bankAddress :3; /**< Bank Address (BA[2:0]) */ 410 uint32_t multAddress :16; /**< Multiplexed Address (MA[14:0]) */ 411 uint32_t rankSelect :2; /**< Rank Select */ 412 uint32_t reserved3 :8; 413 } field; 414 } DramInitMisc; /**< Miscellaneous DDRx Initialization Command */ 415 #pragma pack() 416 417 // 418 // Construct DRAM init command using DramInitXxxx pattern 419 // 420 #define DCMD_MRS1(rnk,dat) (0 | ((rnk)<<22) | (1<<3) | ((dat)<<6)) 421 #define DCMD_REF(rnk) (1 | ((rnk)<<22)) 422 #define DCMD_PRE(rnk) (2 | ((rnk)<<22)) 423 #define DCMD_PREA(rnk) (2 | ((rnk)<<22) | (BIT10<<6)) 424 #define DCMD_ACT(rnk,row) (3 | ((rnk)<<22) | ((row)<<6)) 425 #define DCMD_WR(rnk,col) (4 | ((rnk)<<22) | ((col)<<6)) 426 #define DCMD_RD(rnk,col) (5 | ((rnk)<<22) | ((col)<<6)) 427 #define DCMD_ZQCS(rnk) (6 | ((rnk)<<22)) 428 #define DCMD_ZQCL(rnk) (6 | ((rnk)<<22) | (BIT10<<6)) 429 #define DCMD_NOP(rnk) (7 | ((rnk)<<22)) 430 431 432 433 434 #define DDR3_EMRS1_DIC_40 (0) 435 #define DDR3_EMRS1_DIC_34 (1) 436 437 #define DDR3_EMRS2_RTTWR_60 (BIT9) 438 #define DDR3_EMRS2_RTTWR_120 (BIT10) 439 440 #define DDR3_EMRS1_RTTNOM_0 (0) 441 #define DDR3_EMRS1_RTTNOM_60 (BIT2) 442 #define DDR3_EMRS1_RTTNOM_120 (BIT6) 443 #define DDR3_EMRS1_RTTNOM_40 (BIT6|BIT2) 444 #define DDR3_EMRS1_RTTNOM_20 (BIT9) 445 #define DDR3_EMRS1_RTTNOM_30 (BIT9|BIT2) 446 447 448 // 449 // END DRAM Init... 450 // 451 //// 452 453 454 // HOST_BRIDGE registers: 455 #define HMBOUND 0x0020 //ok 456 457 // MEMORY_MANAGER registers: 458 #define BCTRL 0x0004 459 #define BWFLUSH 0x0008 460 #define BDEBUG1 0x00C4 461 462 //// 463 // 464 // BEGIN DDRIO registers 465 // 466 467 // DDR IOs & COMPs: 468 #define DDRIODQ_BL_OFFSET 0x0800 469 #define DDRIODQ_CH_OFFSET ((NUM_BYTE_LANES/2) * DDRIODQ_BL_OFFSET) 470 #define DDRIOCCC_CH_OFFSET 0x0800 471 #define DDRCOMP_CH_OFFSET 0x0100 472 473 // CH0-BL01-DQ 474 #define DQOBSCKEBBCTL 0x0000 475 #define DQDLLTXCTL 0x0004 476 #define DQDLLRXCTL 0x0008 477 #define DQMDLLCTL 0x000C 478 #define B0RXIOBUFCTL 0x0010 479 #define B0VREFCTL 0x0014 480 #define B0RXOFFSET1 0x0018 481 #define B0RXOFFSET0 0x001C 482 #define B1RXIOBUFCTL 0x0020 483 #define B1VREFCTL 0x0024 484 #define B1RXOFFSET1 0x0028 485 #define B1RXOFFSET0 0x002C 486 #define DQDFTCTL 0x0030 487 #define DQTRAINSTS 0x0034 488 #define B1DLLPICODER0 0x0038 489 #define B0DLLPICODER0 0x003C 490 #define B1DLLPICODER1 0x0040 491 #define B0DLLPICODER1 0x0044 492 #define B1DLLPICODER2 0x0048 493 #define B0DLLPICODER2 0x004C 494 #define B1DLLPICODER3 0x0050 495 #define B0DLLPICODER3 0x0054 496 #define B1RXDQSPICODE 0x0058 497 #define B0RXDQSPICODE 0x005C 498 #define B1RXDQPICODER32 0x0060 499 #define B1RXDQPICODER10 0x0064 500 #define B0RXDQPICODER32 0x0068 501 #define B0RXDQPICODER10 0x006C 502 #define B01PTRCTL0 0x0070 503 #define B01PTRCTL1 0x0074 504 #define B01DBCTL0 0x0078 505 #define B01DBCTL1 0x007C 506 #define B0LATCTL0 0x0080 507 #define B1LATCTL0 0x0084 508 #define B01LATCTL1 0x0088 509 #define B0ONDURCTL 0x008C 510 #define B1ONDURCTL 0x0090 511 #define B0OVRCTL 0x0094 512 #define B1OVRCTL 0x0098 513 #define DQCTL 0x009C 514 #define B0RK2RKCHGPTRCTRL 0x00A0 515 #define B1RK2RKCHGPTRCTRL 0x00A4 516 #define DQRK2RKCTL 0x00A8 517 #define DQRK2RKPTRCTL 0x00AC 518 #define B0RK2RKLAT 0x00B0 519 #define B1RK2RKLAT 0x00B4 520 #define DQCLKALIGNREG0 0x00B8 521 #define DQCLKALIGNREG1 0x00BC 522 #define DQCLKALIGNREG2 0x00C0 523 #define DQCLKALIGNSTS0 0x00C4 524 #define DQCLKALIGNSTS1 0x00C8 525 #define DQCLKGATE 0x00CC 526 #define B0COMPSLV1 0x00D0 527 #define B1COMPSLV1 0x00D4 528 #define B0COMPSLV2 0x00D8 529 #define B1COMPSLV2 0x00DC 530 #define B0COMPSLV3 0x00E0 531 #define B1COMPSLV3 0x00E4 532 #define DQVISALANECR0TOP 0x00E8 533 #define DQVISALANECR1TOP 0x00EC 534 #define DQVISACONTROLCRTOP 0x00F0 535 #define DQVISALANECR0BL 0x00F4 536 #define DQVISALANECR1BL 0x00F8 537 #define DQVISACONTROLCRBL 0x00FC 538 #define DQTIMINGCTRL 0x010C 539 // CH0-ECC 540 #define ECCDLLTXCTL 0x2004 541 #define ECCDLLRXCTL 0x2008 542 #define ECCMDLLCTL 0x200C 543 #define ECCB1DLLPICODER0 0x2038 544 #define ECCB1DLLPICODER1 0x2040 545 #define ECCB1DLLPICODER2 0x2048 546 #define ECCB1DLLPICODER3 0x2050 547 #define ECCB01DBCTL0 0x2078 548 #define ECCB01DBCTL1 0x207C 549 #define ECCCLKALIGNREG0 0x20B8 550 #define ECCCLKALIGNREG1 0x20BC 551 #define ECCCLKALIGNREG2 0x20C0 552 // CH0-CMD 553 #define CMDOBSCKEBBCTL 0x4800 554 #define CMDDLLTXCTL 0x4808 555 #define CMDDLLRXCTL 0x480C 556 #define CMDMDLLCTL 0x4810 557 #define CMDRCOMPODT 0x4814 558 #define CMDDLLPICODER0 0x4820 559 #define CMDDLLPICODER1 0x4824 560 #define CMDCFGREG0 0x4840 561 #define CMDPTRREG 0x4844 562 #define CMDCLKALIGNREG0 0x4850 563 #define CMDCLKALIGNREG1 0x4854 564 #define CMDCLKALIGNREG2 0x4858 565 #define CMDPMCONFIG0 0x485C 566 #define CMDPMDLYREG0 0x4860 567 #define CMDPMDLYREG1 0x4864 568 #define CMDPMDLYREG2 0x4868 569 #define CMDPMDLYREG3 0x486C 570 #define CMDPMDLYREG4 0x4870 571 #define CMDCLKALIGNSTS0 0x4874 572 #define CMDCLKALIGNSTS1 0x4878 573 #define CMDPMSTS0 0x487C 574 #define CMDPMSTS1 0x4880 575 #define CMDCOMPSLV 0x4884 576 #define CMDBONUS0 0x488C 577 #define CMDBONUS1 0x4890 578 #define CMDVISALANECR0 0x4894 579 #define CMDVISALANECR1 0x4898 580 #define CMDVISACONTROLCR 0x489C 581 #define CMDCLKGATE 0x48A0 582 #define CMDTIMINGCTRL 0x48A4 583 // CH0-CLK-CTL 584 #define CCOBSCKEBBCTL 0x5800 585 #define CCRCOMPIO 0x5804 586 #define CCDLLTXCTL 0x5808 587 #define CCDLLRXCTL 0x580C 588 #define CCMDLLCTL 0x5810 589 #define CCRCOMPODT 0x5814 590 #define CCDLLPICODER0 0x5820 591 #define CCDLLPICODER1 0x5824 592 #define CCDDR3RESETCTL 0x5830 593 #define CCCFGREG0 0x5838 594 #define CCCFGREG1 0x5840 595 #define CCPTRREG 0x5844 596 #define CCCLKALIGNREG0 0x5850 597 #define CCCLKALIGNREG1 0x5854 598 #define CCCLKALIGNREG2 0x5858 599 #define CCPMCONFIG0 0x585C 600 #define CCPMDLYREG0 0x5860 601 #define CCPMDLYREG1 0x5864 602 #define CCPMDLYREG2 0x5868 603 #define CCPMDLYREG3 0x586C 604 #define CCPMDLYREG4 0x5870 605 #define CCCLKALIGNSTS0 0x5874 606 #define CCCLKALIGNSTS1 0x5878 607 #define CCPMSTS0 0x587C 608 #define CCPMSTS1 0x5880 609 #define CCCOMPSLV1 0x5884 610 #define CCCOMPSLV2 0x5888 611 #define CCCOMPSLV3 0x588C 612 #define CCBONUS0 0x5894 613 #define CCBONUS1 0x5898 614 #define CCVISALANECR0 0x589C 615 #define CCVISALANECR1 0x58A0 616 #define CCVISACONTROLCR 0x58A4 617 #define CCCLKGATE 0x58A8 618 #define CCTIMINGCTL 0x58AC 619 // COMP 620 #define CMPCTRL 0x6800 621 #define SOFTRSTCNTL 0x6804 622 #define MSCNTR 0x6808 623 #define NMSCNTRL 0x680C 624 #define LATCH1CTL 0x6814 625 #define COMPVISALANECR0 0x681C 626 #define COMPVISALANECR1 0x6820 627 #define COMPVISACONTROLCR 0x6824 628 #define COMPBONUS0 0x6830 629 #define TCOCNTCTRL 0x683C 630 #define DQANAODTPUCTL 0x6840 631 #define DQANAODTPDCTL 0x6844 632 #define DQANADRVPUCTL 0x6848 633 #define DQANADRVPDCTL 0x684C 634 #define DQANADLYPUCTL 0x6850 635 #define DQANADLYPDCTL 0x6854 636 #define DQANATCOPUCTL 0x6858 637 #define DQANATCOPDCTL 0x685C 638 #define CMDANADRVPUCTL 0x6868 639 #define CMDANADRVPDCTL 0x686C 640 #define CMDANADLYPUCTL 0x6870 641 #define CMDANADLYPDCTL 0x6874 642 #define CLKANAODTPUCTL 0x6880 643 #define CLKANAODTPDCTL 0x6884 644 #define CLKANADRVPUCTL 0x6888 645 #define CLKANADRVPDCTL 0x688C 646 #define CLKANADLYPUCTL 0x6890 647 #define CLKANADLYPDCTL 0x6894 648 #define CLKANATCOPUCTL 0x6898 649 #define CLKANATCOPDCTL 0x689C 650 #define DQSANAODTPUCTL 0x68A0 651 #define DQSANAODTPDCTL 0x68A4 652 #define DQSANADRVPUCTL 0x68A8 653 #define DQSANADRVPDCTL 0x68AC 654 #define DQSANADLYPUCTL 0x68B0 655 #define DQSANADLYPDCTL 0x68B4 656 #define DQSANATCOPUCTL 0x68B8 657 #define DQSANATCOPDCTL 0x68BC 658 #define CTLANADRVPUCTL 0x68C8 659 #define CTLANADRVPDCTL 0x68CC 660 #define CTLANADLYPUCTL 0x68D0 661 #define CTLANADLYPDCTL 0x68D4 662 #define CHNLBUFSTATIC 0x68F0 663 #define COMPOBSCNTRL 0x68F4 664 #define COMPBUFFDBG0 0x68F8 665 #define COMPBUFFDBG1 0x68FC 666 #define CFGMISCCH0 0x6900 667 #define COMPEN0CH0 0x6904 668 #define COMPEN1CH0 0x6908 669 #define COMPEN2CH0 0x690C 670 #define STATLEGEN0CH0 0x6910 671 #define STATLEGEN1CH0 0x6914 672 #define DQVREFCH0 0x6918 673 #define CMDVREFCH0 0x691C 674 #define CLKVREFCH0 0x6920 675 #define DQSVREFCH0 0x6924 676 #define CTLVREFCH0 0x6928 677 #define TCOVREFCH0 0x692C 678 #define DLYSELCH0 0x6930 679 #define TCODRAMBUFODTCH0 0x6934 680 #define CCBUFODTCH0 0x6938 681 #define RXOFFSETCH0 0x693C 682 #define DQODTPUCTLCH0 0x6940 683 #define DQODTPDCTLCH0 0x6944 684 #define DQDRVPUCTLCH0 0x6948 685 #define DQDRVPDCTLCH0 0x694C 686 #define DQDLYPUCTLCH0 0x6950 687 #define DQDLYPDCTLCH0 0x6954 688 #define DQTCOPUCTLCH0 0x6958 689 #define DQTCOPDCTLCH0 0x695C 690 #define CMDDRVPUCTLCH0 0x6968 691 #define CMDDRVPDCTLCH0 0x696C 692 #define CMDDLYPUCTLCH0 0x6970 693 #define CMDDLYPDCTLCH0 0x6974 694 #define CLKODTPUCTLCH0 0x6980 695 #define CLKODTPDCTLCH0 0x6984 696 #define CLKDRVPUCTLCH0 0x6988 697 #define CLKDRVPDCTLCH0 0x698C 698 #define CLKDLYPUCTLCH0 0x6990 699 #define CLKDLYPDCTLCH0 0x6994 700 #define CLKTCOPUCTLCH0 0x6998 701 #define CLKTCOPDCTLCH0 0x699C 702 #define DQSODTPUCTLCH0 0x69A0 703 #define DQSODTPDCTLCH0 0x69A4 704 #define DQSDRVPUCTLCH0 0x69A8 705 #define DQSDRVPDCTLCH0 0x69AC 706 #define DQSDLYPUCTLCH0 0x69B0 707 #define DQSDLYPDCTLCH0 0x69B4 708 #define DQSTCOPUCTLCH0 0x69B8 709 #define DQSTCOPDCTLCH0 0x69BC 710 #define CTLDRVPUCTLCH0 0x69C8 711 #define CTLDRVPDCTLCH0 0x69CC 712 #define CTLDLYPUCTLCH0 0x69D0 713 #define CTLDLYPDCTLCH0 0x69D4 714 #define FNLUPDTCTLCH0 0x69F0 715 // PLL 716 #define MPLLCTRL0 0x7800 717 #define MPLLCTRL1 0x7808 718 #define MPLLCSR0 0x7810 719 #define MPLLCSR1 0x7814 720 #define MPLLCSR2 0x7820 721 #define MPLLDFT 0x7828 722 #define MPLLMON0CTL 0x7830 723 #define MPLLMON1CTL 0x7838 724 #define MPLLMON2CTL 0x783C 725 #define SFRTRIM 0x7850 726 #define MPLLDFTOUT0 0x7858 727 #define MPLLDFTOUT1 0x785C 728 #define MASTERRSTN 0x7880 729 #define PLLLOCKDEL 0x7884 730 #define SFRDEL 0x7888 731 #define CRUVISALANECR0 0x78F0 732 #define CRUVISALANECR1 0x78F4 733 #define CRUVISACONTROLCR 0x78F8 734 #define IOSFVISALANECR0 0x78FC 735 #define IOSFVISALANECR1 0x7900 736 #define IOSFVISACONTROLCR 0x7904 737 738 // 739 // END DDRIO registers 740 // 741 //// 742 743 744 #endif 745