Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
CTCaer
GitHub Repository: CTCaer/hekate
Path: blob/master/modules/hekate_libsys_lp0/sdram_lp0_param_t210.h
1476 views
1
/*
2
* Copyright (c) 2013-2015, NVIDIA CORPORATION. All rights reserved.
3
* Copyright 2014 Google Inc.
4
* Copyright (c) 2018 CTCaer
5
*
6
* This program is free software; you can redistribute it and/or modify it
7
* under the terms and conditions of the GNU General Public License,
8
* version 2, as published by the Free Software Foundation.
9
*
10
* This program is distributed in the hope it will be useful, but WITHOUT
11
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13
* more details.
14
*/
15
16
/**
17
* Defines the SDRAM parameter structure.
18
*
19
* Note that PLLM is used by EMC. The field names are in camel case to ease
20
* directly converting BCT config files (*.cfg) into C structure.
21
*/
22
23
#ifndef __TEGRA210_SDRAM_PARAM_H__
24
#define __TEGRA210_SDRAM_PARAM_H__
25
26
#include "types.h"
27
28
enum
29
{
30
/* Specifies the memory type to be undefined */
31
NvBootMemoryType_None = 0,
32
33
/* Specifies the memory type to be DDR SDRAM */
34
NvBootMemoryType_Ddr = 0,
35
36
/* Specifies the memory type to be LPDDR SDRAM */
37
NvBootMemoryType_LpDdr = 0,
38
39
/* Specifies the memory type to be DDR2 SDRAM */
40
NvBootMemoryType_Ddr2 = 0,
41
42
/* Specifies the memory type to be LPDDR2 SDRAM */
43
NvBootMemoryType_LpDdr2,
44
45
/* Specifies the memory type to be DDR3 SDRAM */
46
NvBootMemoryType_Ddr3,
47
48
/* Specifies the memory type to be LPDDR4 SDRAM */
49
NvBootMemoryType_LpDdr4,
50
51
NvBootMemoryType_Num,
52
53
/* Specifies an entry in the ram_code table that's not in use */
54
NvBootMemoryType_Unused = 0X7FFFFFF,
55
};
56
57
/**
58
* Defines the SDRAM parameter structure
59
*/
60
struct sdram_params_t210
61
{
62
63
/* Specifies the type of memory device */
64
u32 MemoryType;
65
66
/* MC/EMC clock source configuration */
67
68
/* Specifies the M value for PllM */
69
u32 PllMInputDivider;
70
/* Specifies the N value for PllM */
71
u32 PllMFeedbackDivider;
72
/* Specifies the time to wait for PLLM to lock (in microseconds) */
73
u32 PllMStableTime;
74
/* Specifies misc. control bits */
75
u32 PllMSetupControl;
76
/* Specifies the P value for PLLM */
77
u32 PllMPostDivider;
78
/* Specifies value for Charge Pump Gain Control */
79
u32 PllMKCP;
80
/* Specifies VCO gain */
81
u32 PllMKVCO;
82
/* Spare BCT param */
83
u32 EmcBctSpare0;
84
/* Spare BCT param */
85
u32 EmcBctSpare1;
86
/* Spare BCT param */
87
u32 EmcBctSpare2;
88
/* Spare BCT param */
89
u32 EmcBctSpare3;
90
/* Spare BCT param */
91
u32 EmcBctSpare4;
92
/* Spare BCT param */
93
u32 EmcBctSpare5;
94
/* Spare BCT param */
95
u32 EmcBctSpare6;
96
/* Spare BCT param */
97
u32 EmcBctSpare7;
98
/* Spare BCT param */
99
u32 EmcBctSpare8;
100
/* Spare BCT param */
101
u32 EmcBctSpare9;
102
/* Spare BCT param */
103
u32 EmcBctSpare10;
104
/* Spare BCT param */
105
u32 EmcBctSpare11;
106
/* Spare BCT param */
107
u32 EmcBctSpare12;
108
/* Spare BCT param */
109
u32 EmcBctSpare13;
110
111
/* Defines EMC_2X_CLK_SRC, EMC_2X_CLK_DIVISOR, EMC_INVERT_DCD */
112
u32 EmcClockSource;
113
u32 EmcClockSourceDll;
114
115
/* Defines possible override for PLLLM_MISC2 */
116
u32 ClkRstControllerPllmMisc2Override;
117
/* enables override for PLLLM_MISC2 */
118
u32 ClkRstControllerPllmMisc2OverrideEnable;
119
/* defines CLK_ENB_MC1 in register clk_rst_controller_clk_enb_w_clr */
120
u32 ClearClk2Mc1;
121
122
/* Auto-calibration of EMC pads */
123
124
/* Specifies the value for EMC_AUTO_CAL_INTERVAL */
125
u32 EmcAutoCalInterval;
126
/*
127
* Specifies the value for EMC_AUTO_CAL_CONFIG
128
* Note: Trigger bits are set by the SDRAM code.
129
*/
130
u32 EmcAutoCalConfig;
131
132
/* Specifies the value for EMC_AUTO_CAL_CONFIG2 */
133
u32 EmcAutoCalConfig2;
134
135
/* Specifies the value for EMC_AUTO_CAL_CONFIG3 */
136
u32 EmcAutoCalConfig3;
137
138
/* Specifies the values for EMC_AUTO_CAL_CONFIG4-8 */
139
u32 EmcAutoCalConfig4;
140
u32 EmcAutoCalConfig5;
141
u32 EmcAutoCalConfig6;
142
u32 EmcAutoCalConfig7;
143
u32 EmcAutoCalConfig8;
144
145
/* Specifies the value for EMC_AUTO_CAL_VREF_SEL_0 */
146
u32 EmcAutoCalVrefSel0;
147
u32 EmcAutoCalVrefSel1;
148
149
/* Specifies the value for EMC_AUTO_CAL_CHANNEL */
150
u32 EmcAutoCalChannel;
151
152
/* Specifies the value for EMC_PMACRO_AUTOCAL_CFG_0 */
153
u32 EmcPmacroAutocalCfg0;
154
u32 EmcPmacroAutocalCfg1;
155
u32 EmcPmacroAutocalCfg2;
156
u32 EmcPmacroRxTerm;
157
u32 EmcPmacroDqTxDrv;
158
u32 EmcPmacroCaTxDrv;
159
u32 EmcPmacroCmdTxDrv;
160
u32 EmcPmacroAutocalCfgCommon;
161
u32 EmcPmacroZctrl;
162
163
/*
164
* Specifies the time for the calibration
165
* to stabilize (in microseconds)
166
*/
167
u32 EmcAutoCalWait;
168
169
u32 EmcXm2CompPadCtrl;
170
u32 EmcXm2CompPadCtrl2;
171
u32 EmcXm2CompPadCtrl3;
172
173
/*
174
* DRAM size information
175
* Specifies the value for EMC_ADR_CFG
176
*/
177
u32 EmcAdrCfg;
178
179
/*
180
* Specifies the time to wait after asserting pin
181
* CKE (in microseconds)
182
*/
183
u32 EmcPinProgramWait;
184
/* Specifies the extra delay before/after pin RESET/CKE command */
185
u32 EmcPinExtraWait;
186
187
u32 EmcPinGpioEn;
188
u32 EmcPinGpio;
189
190
/*
191
* Specifies the extra delay after the first writing
192
* of EMC_TIMING_CONTROL
193
*/
194
u32 EmcTimingControlWait;
195
196
/* Timing parameters required for the SDRAM */
197
198
/* Specifies the value for EMC_RC */
199
u32 EmcRc;
200
/* Specifies the value for EMC_RFC */
201
u32 EmcRfc;
202
/* Specifies the value for EMC_RFC_PB */
203
u32 EmcRfcPb;
204
/* Specifies the value for EMC_RFC_CTRL2 */
205
u32 EmcRefctrl2;
206
/* Specifies the value for EMC_RFC_SLR */
207
u32 EmcRfcSlr;
208
/* Specifies the value for EMC_RAS */
209
u32 EmcRas;
210
/* Specifies the value for EMC_RP */
211
u32 EmcRp;
212
/* Specifies the value for EMC_R2R */
213
u32 EmcR2r;
214
/* Specifies the value for EMC_W2W */
215
u32 EmcW2w;
216
/* Specifies the value for EMC_R2W */
217
u32 EmcR2w;
218
/* Specifies the value for EMC_W2R */
219
u32 EmcW2r;
220
/* Specifies the value for EMC_R2P */
221
u32 EmcR2p;
222
/* Specifies the value for EMC_W2P */
223
u32 EmcW2p;
224
225
u32 EmcTppd;
226
u32 EmcCcdmw;
227
228
/* Specifies the value for EMC_RD_RCD */
229
u32 EmcRdRcd;
230
/* Specifies the value for EMC_WR_RCD */
231
u32 EmcWrRcd;
232
/* Specifies the value for EMC_RRD */
233
u32 EmcRrd;
234
/* Specifies the value for EMC_REXT */
235
u32 EmcRext;
236
/* Specifies the value for EMC_WEXT */
237
u32 EmcWext;
238
/* Specifies the value for EMC_WDV */
239
u32 EmcWdv;
240
241
u32 EmcWdvChk;
242
u32 EmcWsv;
243
u32 EmcWev;
244
245
/* Specifies the value for EMC_WDV_MASK */
246
u32 EmcWdvMask;
247
248
u32 EmcWsDuration;
249
u32 EmcWeDuration;
250
251
/* Specifies the value for EMC_QUSE */
252
u32 EmcQUse;
253
/* Specifies the value for EMC_QUSE_WIDTH */
254
u32 EmcQuseWidth;
255
/* Specifies the value for EMC_IBDLY */
256
u32 EmcIbdly;
257
/* Specifies the value for EMC_OBDLY */
258
u32 EmcObdly;
259
/* Specifies the value for EMC_EINPUT */
260
u32 EmcEInput;
261
/* Specifies the value for EMC_EINPUT_DURATION */
262
u32 EmcEInputDuration;
263
/* Specifies the value for EMC_PUTERM_EXTRA */
264
u32 EmcPutermExtra;
265
/* Specifies the value for EMC_PUTERM_WIDTH */
266
u32 EmcPutermWidth;
267
/* Specifies the value for EMC_PUTERM_ADJ */
268
////u32 EmcPutermAdj;
269
270
/* Specifies the value for EMC_QRST */
271
u32 EmcQRst;
272
/* Specifies the value for EMC_QSAFE */
273
u32 EmcQSafe;
274
/* Specifies the value for EMC_RDV */
275
u32 EmcRdv;
276
/* Specifies the value for EMC_RDV_MASK */
277
u32 EmcRdvMask;
278
/* Specifies the value for EMC_RDV_EARLY */
279
u32 EmcRdvEarly;
280
/* Specifies the value for EMC_RDV_EARLY_MASK */
281
u32 EmcRdvEarlyMask;
282
/* Specifies the value for EMC_QPOP */
283
u32 EmcQpop;
284
285
/* Specifies the value for EMC_REFRESH */
286
u32 EmcRefresh;
287
/* Specifies the value for EMC_BURST_REFRESH_NUM */
288
u32 EmcBurstRefreshNum;
289
/* Specifies the value for EMC_PRE_REFRESH_REQ_CNT */
290
u32 EmcPreRefreshReqCnt;
291
/* Specifies the value for EMC_PDEX2WR */
292
u32 EmcPdEx2Wr;
293
/* Specifies the value for EMC_PDEX2RD */
294
u32 EmcPdEx2Rd;
295
/* Specifies the value for EMC_PCHG2PDEN */
296
u32 EmcPChg2Pden;
297
/* Specifies the value for EMC_ACT2PDEN */
298
u32 EmcAct2Pden;
299
/* Specifies the value for EMC_AR2PDEN */
300
u32 EmcAr2Pden;
301
/* Specifies the value for EMC_RW2PDEN */
302
u32 EmcRw2Pden;
303
/* Specifies the value for EMC_CKE2PDEN */
304
u32 EmcCke2Pden;
305
/* Specifies the value for EMC_PDEX2CKE */
306
u32 EmcPdex2Cke;
307
/* Specifies the value for EMC_PDEX2MRR */
308
u32 EmcPdex2Mrr;
309
/* Specifies the value for EMC_TXSR */
310
u32 EmcTxsr;
311
/* Specifies the value for EMC_TXSRDLL */
312
u32 EmcTxsrDll;
313
/* Specifies the value for EMC_TCKE */
314
u32 EmcTcke;
315
/* Specifies the value for EMC_TCKESR */
316
u32 EmcTckesr;
317
/* Specifies the value for EMC_TPD */
318
u32 EmcTpd;
319
/* Specifies the value for EMC_TFAW */
320
u32 EmcTfaw;
321
/* Specifies the value for EMC_TRPAB */
322
u32 EmcTrpab;
323
/* Specifies the value for EMC_TCLKSTABLE */
324
u32 EmcTClkStable;
325
/* Specifies the value for EMC_TCLKSTOP */
326
u32 EmcTClkStop;
327
/* Specifies the value for EMC_TREFBW */
328
u32 EmcTRefBw;
329
330
/* FBIO configuration values */
331
332
/* Specifies the value for EMC_FBIO_CFG5 */
333
u32 EmcFbioCfg5;
334
/* Specifies the value for EMC_FBIO_CFG7 */
335
u32 EmcFbioCfg7;
336
/* Specifies the value for EMC_FBIO_CFG8 */
337
u32 EmcFbioCfg8;
338
339
/* Command mapping for CMD brick 0 */
340
u32 EmcCmdMappingCmd0_0;
341
u32 EmcCmdMappingCmd0_1;
342
u32 EmcCmdMappingCmd0_2;
343
u32 EmcCmdMappingCmd1_0;
344
u32 EmcCmdMappingCmd1_1;
345
u32 EmcCmdMappingCmd1_2;
346
u32 EmcCmdMappingCmd2_0;
347
u32 EmcCmdMappingCmd2_1;
348
u32 EmcCmdMappingCmd2_2;
349
u32 EmcCmdMappingCmd3_0;
350
u32 EmcCmdMappingCmd3_1;
351
u32 EmcCmdMappingCmd3_2;
352
u32 EmcCmdMappingByte;
353
354
/* Specifies the value for EMC_FBIO_SPARE */
355
u32 EmcFbioSpare;
356
357
/* Specifies the value for EMC_CFG_RSV */
358
u32 EmcCfgRsv;
359
360
/* MRS command values */
361
362
/* Specifies the value for EMC_MRS */
363
u32 EmcMrs;
364
/* Specifies the MP0 command to initialize mode registers */
365
u32 EmcEmrs;
366
/* Specifies the MP2 command to initialize mode registers */
367
u32 EmcEmrs2;
368
/* Specifies the MP3 command to initialize mode registers */
369
u32 EmcEmrs3;
370
/* Specifies the programming to LPDDR2 Mode Register 1 at cold boot */
371
u32 EmcMrw1;
372
/* Specifies the programming to LPDDR2 Mode Register 2 at cold boot */
373
u32 EmcMrw2;
374
/* Specifies the programming to LPDDR2 Mode Register 3 at cold boot */
375
u32 EmcMrw3;
376
/* Specifies the programming to LPDDR2 Mode Register 11 at cold boot */
377
u32 EmcMrw4;
378
/* Specifies the programming to LPDDR2 Mode Register 3? at cold boot */
379
u32 EmcMrw6;
380
/* Specifies the programming to LPDDR2 Mode Register 11 at cold boot */
381
u32 EmcMrw8;
382
/* Specifies the programming to LPDDR2 Mode Register 11? at cold boot */
383
u32 EmcMrw9;
384
/* Specifies the programming to LPDDR2 Mode Register 12 at cold boot */
385
u32 EmcMrw10;
386
/* Specifies the programming to LPDDR2 Mode Register 14 at cold boot */
387
u32 EmcMrw12;
388
/* Specifies the programming to LPDDR2 Mode Register 14? at cold boot */
389
u32 EmcMrw13;
390
/* Specifies the programming to LPDDR2 Mode Register 22 at cold boot */
391
u32 EmcMrw14;
392
/*
393
* Specifies the programming to extra LPDDR2 Mode Register
394
* at cold boot
395
*/
396
u32 EmcMrwExtra;
397
/*
398
* Specifies the programming to extra LPDDR2 Mode Register
399
* at warm boot
400
*/
401
u32 EmcWarmBootMrwExtra;
402
/*
403
* Specify the enable of extra Mode Register programming at
404
* warm boot
405
*/
406
u32 EmcWarmBootExtraModeRegWriteEnable;
407
/*
408
* Specify the enable of extra Mode Register programming at
409
* cold boot
410
*/
411
u32 EmcExtraModeRegWriteEnable;
412
413
/* Specifies the EMC_MRW reset command value */
414
u32 EmcMrwResetCommand;
415
/* Specifies the EMC Reset wait time (in microseconds) */
416
u32 EmcMrwResetNInitWait;
417
/* Specifies the value for EMC_MRS_WAIT_CNT */
418
u32 EmcMrsWaitCnt;
419
/* Specifies the value for EMC_MRS_WAIT_CNT2 */
420
u32 EmcMrsWaitCnt2;
421
422
/* EMC miscellaneous configurations */
423
424
/* Specifies the value for EMC_CFG */
425
u32 EmcCfg;
426
/* Specifies the value for EMC_CFG_2 */
427
u32 EmcCfg2;
428
/* Specifies the pipe bypass controls */
429
u32 EmcCfgPipe;
430
u32 EmcCfgPipeClk;
431
u32 EmcFdpdCtrlCmdNoRamp;
432
u32 EmcCfgUpdate;
433
434
/* Specifies the value for EMC_DBG */
435
u32 EmcDbg;
436
u32 EmcDbgWriteMux;
437
438
/* Specifies the value for EMC_CMDQ */
439
u32 EmcCmdQ;
440
/* Specifies the value for EMC_MC2EMCQ */
441
u32 EmcMc2EmcQ;
442
/* Specifies the value for EMC_DYN_SELF_REF_CONTROL */
443
u32 EmcDynSelfRefControl;
444
445
/* Specifies the value for MEM_INIT_DONE */
446
u32 AhbArbitrationXbarCtrlMemInitDone;
447
448
/* Specifies the value for EMC_CFG_DIG_DLL */
449
u32 EmcCfgDigDll;
450
u32 EmcCfgDigDll_1;
451
/* Specifies the value for EMC_CFG_DIG_DLL_PERIOD */
452
u32 EmcCfgDigDllPeriod;
453
/* Specifies the value of *DEV_SELECTN of various EMC registers */
454
u32 EmcDevSelect;
455
456
/* Specifies the value for EMC_SEL_DPD_CTRL */
457
u32 EmcSelDpdCtrl;
458
459
/* Pads trimmer delays */
460
u32 EmcFdpdCtrlDq;
461
u32 EmcFdpdCtrlCmd;
462
u32 EmcPmacroIbVrefDq_0;
463
u32 EmcPmacroIbVrefDq_1;
464
u32 EmcPmacroIbVrefDqs_0;
465
u32 EmcPmacroIbVrefDqs_1;
466
u32 EmcPmacroIbRxrt;
467
u32 EmcCfgPipe1;
468
u32 EmcCfgPipe2;
469
470
/* Specifies the value for EMC_PMACRO_QUSE_DDLL_RANK0_0 */
471
u32 EmcPmacroQuseDdllRank0_0;
472
u32 EmcPmacroQuseDdllRank0_1;
473
u32 EmcPmacroQuseDdllRank0_2;
474
u32 EmcPmacroQuseDdllRank0_3;
475
u32 EmcPmacroQuseDdllRank0_4;
476
u32 EmcPmacroQuseDdllRank0_5;
477
u32 EmcPmacroQuseDdllRank1_0;
478
u32 EmcPmacroQuseDdllRank1_1;
479
u32 EmcPmacroQuseDdllRank1_2;
480
u32 EmcPmacroQuseDdllRank1_3;
481
u32 EmcPmacroQuseDdllRank1_4;
482
u32 EmcPmacroQuseDdllRank1_5;
483
484
u32 EmcPmacroObDdllLongDqRank0_0;
485
u32 EmcPmacroObDdllLongDqRank0_1;
486
u32 EmcPmacroObDdllLongDqRank0_2;
487
u32 EmcPmacroObDdllLongDqRank0_3;
488
u32 EmcPmacroObDdllLongDqRank0_4;
489
u32 EmcPmacroObDdllLongDqRank0_5;
490
u32 EmcPmacroObDdllLongDqRank1_0;
491
u32 EmcPmacroObDdllLongDqRank1_1;
492
u32 EmcPmacroObDdllLongDqRank1_2;
493
u32 EmcPmacroObDdllLongDqRank1_3;
494
u32 EmcPmacroObDdllLongDqRank1_4;
495
u32 EmcPmacroObDdllLongDqRank1_5;
496
497
u32 EmcPmacroObDdllLongDqsRank0_0;
498
u32 EmcPmacroObDdllLongDqsRank0_1;
499
u32 EmcPmacroObDdllLongDqsRank0_2;
500
u32 EmcPmacroObDdllLongDqsRank0_3;
501
u32 EmcPmacroObDdllLongDqsRank0_4;
502
u32 EmcPmacroObDdllLongDqsRank0_5;
503
u32 EmcPmacroObDdllLongDqsRank1_0;
504
u32 EmcPmacroObDdllLongDqsRank1_1;
505
u32 EmcPmacroObDdllLongDqsRank1_2;
506
u32 EmcPmacroObDdllLongDqsRank1_3;
507
u32 EmcPmacroObDdllLongDqsRank1_4;
508
u32 EmcPmacroObDdllLongDqsRank1_5;
509
510
u32 EmcPmacroIbDdllLongDqsRank0_0;
511
u32 EmcPmacroIbDdllLongDqsRank0_1;
512
u32 EmcPmacroIbDdllLongDqsRank0_2;
513
u32 EmcPmacroIbDdllLongDqsRank0_3;
514
u32 EmcPmacroIbDdllLongDqsRank1_0;
515
u32 EmcPmacroIbDdllLongDqsRank1_1;
516
u32 EmcPmacroIbDdllLongDqsRank1_2;
517
u32 EmcPmacroIbDdllLongDqsRank1_3;
518
519
u32 EmcPmacroDdllLongCmd_0;
520
u32 EmcPmacroDdllLongCmd_1;
521
u32 EmcPmacroDdllLongCmd_2;
522
u32 EmcPmacroDdllLongCmd_3;
523
u32 EmcPmacroDdllLongCmd_4;
524
u32 EmcPmacroDdllShortCmd_0;
525
u32 EmcPmacroDdllShortCmd_1;
526
u32 EmcPmacroDdllShortCmd_2;
527
528
/*
529
* Specifies the delay after asserting CKE pin during a WarmBoot0
530
* sequence (in microseconds)
531
*/
532
u32 WarmBootWait;
533
534
/* Specifies the value for EMC_ODT_WRITE */
535
u32 EmcOdtWrite;
536
537
/* Periodic ZQ calibration */
538
539
/*
540
* Specifies the value for EMC_ZCAL_INTERVAL
541
* Value 0 disables ZQ calibration
542
*/
543
u32 EmcZcalInterval;
544
/* Specifies the value for EMC_ZCAL_WAIT_CNT */
545
u32 EmcZcalWaitCnt;
546
/* Specifies the value for EMC_ZCAL_MRW_CMD */
547
u32 EmcZcalMrwCmd;
548
549
/* DRAM initialization sequence flow control */
550
551
/* Specifies the MRS command value for resetting DLL */
552
u32 EmcMrsResetDll;
553
/* Specifies the command for ZQ initialization of device 0 */
554
u32 EmcZcalInitDev0;
555
/* Specifies the command for ZQ initialization of device 1 */
556
u32 EmcZcalInitDev1;
557
/*
558
* Specifies the wait time after programming a ZQ initialization
559
* command (in microseconds)
560
*/
561
u32 EmcZcalInitWait;
562
/*
563
* Specifies the enable for ZQ calibration at cold boot [bit 0]
564
* and warm boot [bit 1]
565
*/
566
u32 EmcZcalWarmColdBootEnables;
567
568
/*
569
* Specifies the MRW command to LPDDR2 for ZQ calibration
570
* on warmboot
571
*/
572
/* Is issued to both devices separately */
573
u32 EmcMrwLpddr2ZcalWarmBoot;
574
/*
575
* Specifies the ZQ command to DDR3 for ZQ calibration on warmboot
576
* Is issued to both devices separately
577
*/
578
u32 EmcZqCalDdr3WarmBoot;
579
u32 EmcZqCalLpDdr4WarmBoot;
580
/*
581
* Specifies the wait time for ZQ calibration on warmboot
582
* (in microseconds)
583
*/
584
u32 EmcZcalWarmBootWait;
585
/*
586
* Specifies the enable for DRAM Mode Register programming
587
* at warm boot
588
*/
589
u32 EmcMrsWarmBootEnable;
590
/*
591
* Specifies the wait time after sending an MRS DLL reset command
592
* in microseconds)
593
*/
594
u32 EmcMrsResetDllWait;
595
/* Specifies the extra MRS command to initialize mode registers */
596
u32 EmcMrsExtra;
597
/* Specifies the extra MRS command at warm boot */
598
u32 EmcWarmBootMrsExtra;
599
/* Specifies the EMRS command to enable the DDR2 DLL */
600
u32 EmcEmrsDdr2DllEnable;
601
/* Specifies the MRS command to reset the DDR2 DLL */
602
u32 EmcMrsDdr2DllReset;
603
/* Specifies the EMRS command to set OCD calibration */
604
u32 EmcEmrsDdr2OcdCalib;
605
/*
606
* Specifies the wait between initializing DDR and setting OCD
607
* calibration (in microseconds)
608
*/
609
u32 EmcDdr2Wait;
610
/* Specifies the value for EMC_CLKEN_OVERRIDE */
611
u32 EmcClkenOverride;
612
613
/*
614
* Specifies LOG2 of the extra refresh numbers after booting
615
* Program 0 to disable
616
*/
617
u32 EmcExtraRefreshNum;
618
/* Specifies the master override for all EMC clocks */
619
u32 EmcClkenOverrideAllWarmBoot;
620
/* Specifies the master override for all MC clocks */
621
u32 McClkenOverrideAllWarmBoot;
622
/* Specifies digital dll period, choosing between 4 to 64 ms */
623
u32 EmcCfgDigDllPeriodWarmBoot;
624
625
/* Pad controls */
626
627
/* Specifies the value for PMC_VDDP_SEL */
628
u32 PmcVddpSel;
629
/* Specifies the wait time after programming PMC_VDDP_SEL */
630
u32 PmcVddpSelWait;
631
/* Specifies the value for PMC_DDR_PWR */
632
u32 PmcDdrPwr;
633
/* Specifies the value for PMC_DDR_CFG */
634
u32 PmcDdrCfg;
635
/* Specifies the value for PMC_IO_DPD3_REQ */
636
u32 PmcIoDpd3Req;
637
/* Specifies the wait time after programming PMC_IO_DPD3_REQ */
638
u32 PmcIoDpd3ReqWait;
639
u32 PmcIoDpd4ReqWait;
640
641
/* Specifies the value for PMC_REG_SHORT */
642
u32 PmcRegShort;
643
/* Specifies the value for PMC_NO_IOPOWER */
644
u32 PmcNoIoPower;
645
646
u32 PmcDdrCntrlWait;
647
u32 PmcDdrCntrl;
648
649
/* Specifies the value for EMC_ACPD_CONTROL */
650
u32 EmcAcpdControl;
651
652
/* Specifies the value for EMC_SWIZZLE_RANK0_BYTE_CFG */
653
////u32 EmcSwizzleRank0ByteCfg;
654
/* Specifies the value for EMC_SWIZZLE_RANK0_BYTE0 */
655
u32 EmcSwizzleRank0Byte0;
656
/* Specifies the value for EMC_SWIZZLE_RANK0_BYTE1 */
657
u32 EmcSwizzleRank0Byte1;
658
/* Specifies the value for EMC_SWIZZLE_RANK0_BYTE2 */
659
u32 EmcSwizzleRank0Byte2;
660
/* Specifies the value for EMC_SWIZZLE_RANK0_BYTE3 */
661
u32 EmcSwizzleRank0Byte3;
662
/* Specifies the value for EMC_SWIZZLE_RANK1_BYTE_CFG */
663
////u32 EmcSwizzleRank1ByteCfg;
664
/* Specifies the value for EMC_SWIZZLE_RANK1_BYTE0 */
665
u32 EmcSwizzleRank1Byte0;
666
/* Specifies the value for EMC_SWIZZLE_RANK1_BYTE1 */
667
u32 EmcSwizzleRank1Byte1;
668
/* Specifies the value for EMC_SWIZZLE_RANK1_BYTE2 */
669
u32 EmcSwizzleRank1Byte2;
670
/* Specifies the value for EMC_SWIZZLE_RANK1_BYTE3 */
671
u32 EmcSwizzleRank1Byte3;
672
673
/* Specifies the value for EMC_TXDSRVTTGEN */
674
u32 EmcTxdsrvttgen;
675
676
/* Specifies the value for EMC_DATA_BRLSHFT_0 */
677
u32 EmcDataBrlshft0;
678
u32 EmcDataBrlshft1;
679
680
u32 EmcDqsBrlshft0;
681
u32 EmcDqsBrlshft1;
682
683
u32 EmcCmdBrlshft0;
684
u32 EmcCmdBrlshft1;
685
u32 EmcCmdBrlshft2;
686
u32 EmcCmdBrlshft3;
687
688
u32 EmcQuseBrlshft0;
689
u32 EmcQuseBrlshft1;
690
u32 EmcQuseBrlshft2;
691
u32 EmcQuseBrlshft3;
692
693
u32 EmcDllCfg0;
694
u32 EmcDllCfg1;
695
696
u32 EmcPmcScratch1;
697
u32 EmcPmcScratch2;
698
u32 EmcPmcScratch3;
699
700
u32 EmcPmacroPadCfgCtrl;
701
702
u32 EmcPmacroVttgenCtrl0;
703
u32 EmcPmacroVttgenCtrl1;
704
u32 EmcPmacroVttgenCtrl2;
705
706
u32 EmcPmacroBrickCtrlRfu1;
707
u32 EmcPmacroCmdBrickCtrlFdpd;
708
u32 EmcPmacroBrickCtrlRfu2;
709
u32 EmcPmacroDataBrickCtrlFdpd;
710
u32 EmcPmacroBgBiasCtrl0;
711
u32 EmcPmacroDataPadRxCtrl;
712
u32 EmcPmacroCmdPadRxCtrl;
713
u32 EmcPmacroDataRxTermMode;
714
u32 EmcPmacroCmdRxTermMode;
715
u32 EmcPmacroDataPadTxCtrl;
716
u32 EmcPmacroCommonPadTxCtrl;
717
u32 EmcPmacroCmdPadTxCtrl;
718
u32 EmcCfg3;
719
720
u32 EmcPmacroTxPwrd0;
721
u32 EmcPmacroTxPwrd1;
722
u32 EmcPmacroTxPwrd2;
723
u32 EmcPmacroTxPwrd3;
724
u32 EmcPmacroTxPwrd4;
725
u32 EmcPmacroTxPwrd5;
726
727
u32 EmcConfigSampleDelay;
728
729
u32 EmcPmacroBrickMapping0;
730
u32 EmcPmacroBrickMapping1;
731
u32 EmcPmacroBrickMapping2;
732
733
u32 EmcPmacroTxSelClkSrc0;
734
u32 EmcPmacroTxSelClkSrc1;
735
u32 EmcPmacroTxSelClkSrc2;
736
u32 EmcPmacroTxSelClkSrc3;
737
u32 EmcPmacroTxSelClkSrc4;
738
u32 EmcPmacroTxSelClkSrc5;
739
740
u32 EmcPmacroDdllBypass;
741
742
u32 EmcPmacroDdllPwrd0;
743
u32 EmcPmacroDdllPwrd1;
744
u32 EmcPmacroDdllPwrd2;
745
746
u32 EmcPmacroCmdCtrl0;
747
u32 EmcPmacroCmdCtrl1;
748
u32 EmcPmacroCmdCtrl2;
749
750
/* DRAM size information */
751
752
/* Specifies the value for MC_EMEM_ADR_CFG */
753
u32 McEmemAdrCfg;
754
/* Specifies the value for MC_EMEM_ADR_CFG_DEV0 */
755
u32 McEmemAdrCfgDev0;
756
/* Specifies the value for MC_EMEM_ADR_CFG_DEV1 */
757
u32 McEmemAdrCfgDev1;
758
u32 McEmemAdrCfgChannelMask;
759
760
/* Specifies the value for MC_EMEM_BANK_SWIZZLECfg0 */
761
u32 McEmemAdrCfgBankMask0;
762
/* Specifies the value for MC_EMEM_BANK_SWIZZLE_CFG1 */
763
u32 McEmemAdrCfgBankMask1;
764
/* Specifies the value for MC_EMEM_BANK_SWIZZLE_CFG2 */
765
u32 McEmemAdrCfgBankMask2;
766
767
/*
768
* Specifies the value for MC_EMEM_CFG which holds the external memory
769
* size (in KBytes)
770
*/
771
u32 McEmemCfg;
772
773
/* MC arbitration configuration */
774
775
/* Specifies the value for MC_EMEM_ARB_CFG */
776
u32 McEmemArbCfg;
777
/* Specifies the value for MC_EMEM_ARB_OUTSTANDING_REQ */
778
u32 McEmemArbOutstandingReq;
779
780
u32 McEmemArbRefpbHpCtrl;
781
u32 McEmemArbRefpbBankCtrl;
782
783
/* Specifies the value for MC_EMEM_ARB_TIMING_RCD */
784
u32 McEmemArbTimingRcd;
785
/* Specifies the value for MC_EMEM_ARB_TIMING_RP */
786
u32 McEmemArbTimingRp;
787
/* Specifies the value for MC_EMEM_ARB_TIMING_RC */
788
u32 McEmemArbTimingRc;
789
/* Specifies the value for MC_EMEM_ARB_TIMING_RAS */
790
u32 McEmemArbTimingRas;
791
/* Specifies the value for MC_EMEM_ARB_TIMING_FAW */
792
u32 McEmemArbTimingFaw;
793
/* Specifies the value for MC_EMEM_ARB_TIMING_RRD */
794
u32 McEmemArbTimingRrd;
795
/* Specifies the value for MC_EMEM_ARB_TIMING_RAP2PRE */
796
u32 McEmemArbTimingRap2Pre;
797
/* Specifies the value for MC_EMEM_ARB_TIMING_WAP2PRE */
798
u32 McEmemArbTimingWap2Pre;
799
/* Specifies the value for MC_EMEM_ARB_TIMING_R2R */
800
u32 McEmemArbTimingR2R;
801
/* Specifies the value for MC_EMEM_ARB_TIMING_W2W */
802
u32 McEmemArbTimingW2W;
803
/* Specifies the value for MC_EMEM_ARB_TIMING_R2W */
804
u32 McEmemArbTimingR2W;
805
/* Specifies the value for MC_EMEM_ARB_TIMING_W2R */
806
u32 McEmemArbTimingW2R;
807
808
u32 McEmemArbTimingRFCPB;
809
810
/* Specifies the value for MC_EMEM_ARB_DA_TURNS */
811
u32 McEmemArbDaTurns;
812
/* Specifies the value for MC_EMEM_ARB_DA_COVERS */
813
u32 McEmemArbDaCovers;
814
/* Specifies the value for MC_EMEM_ARB_MISC0 */
815
u32 McEmemArbMisc0;
816
/* Specifies the value for MC_EMEM_ARB_MISC1 */
817
u32 McEmemArbMisc1;
818
u32 McEmemArbMisc2;
819
820
/* Specifies the value for MC_EMEM_ARB_RING1_THROTTLE */
821
u32 McEmemArbRing1Throttle;
822
/* Specifies the value for MC_EMEM_ARB_OVERRIDE */
823
u32 McEmemArbOverride;
824
/* Specifies the value for MC_EMEM_ARB_OVERRIDE_1 */
825
u32 McEmemArbOverride1;
826
/* Specifies the value for MC_EMEM_ARB_RSV */
827
u32 McEmemArbRsv;
828
829
u32 McDaCfg0;
830
u32 McEmemArbTimingCcdmw;
831
832
/* Specifies the value for MC_CLKEN_OVERRIDE */
833
u32 McClkenOverride;
834
835
/* Specifies the value for MC_STAT_CONTROL */
836
u32 McStatControl;
837
838
/* Specifies the value for MC_VIDEO_PROTECT_BOM */
839
u32 McVideoProtectBom;
840
/* Specifies the value for MC_VIDEO_PROTECT_BOM_ADR_HI */
841
u32 McVideoProtectBomAdrHi;
842
/* Specifies the value for MC_VIDEO_PROTECT_SIZE_MB */
843
u32 McVideoProtectSizeMb;
844
/* Specifies the value for MC_VIDEO_PROTECT_VPR_OVERRIDE */
845
u32 McVideoProtectVprOverride;
846
/* Specifies the value for MC_VIDEO_PROTECT_VPR_OVERRIDE1 */
847
u32 McVideoProtectVprOverride1;
848
/* Specifies the value for MC_VIDEO_PROTECT_GPU_OVERRIDE_0 */
849
u32 McVideoProtectGpuOverride0;
850
/* Specifies the value for MC_VIDEO_PROTECT_GPU_OVERRIDE_1 */
851
u32 McVideoProtectGpuOverride1;
852
/* Specifies the value for MC_SEC_CARVEOUT_BOM */
853
u32 McSecCarveoutBom;
854
/* Specifies the value for MC_SEC_CARVEOUT_ADR_HI */
855
u32 McSecCarveoutAdrHi;
856
/* Specifies the value for MC_SEC_CARVEOUT_SIZE_MB */
857
u32 McSecCarveoutSizeMb;
858
/* Specifies the value for MC_VIDEO_PROTECT_REG_CTRL.
859
VIDEO_PROTECT_WRITEAccess */
860
u32 McVideoProtectWriteAccess;
861
/* Specifies the value for MC_SEC_CARVEOUT_REG_CTRL.
862
SEC_CARVEOUT_WRITEAccess */
863
u32 McSecCarveoutProtectWriteAccess;
864
865
/* Write-Protect Regions (WPR) */
866
u32 McGeneralizedCarveout1Bom;
867
u32 McGeneralizedCarveout1BomHi;
868
u32 McGeneralizedCarveout1Size128kb;
869
u32 McGeneralizedCarveout1Access0;
870
u32 McGeneralizedCarveout1Access1;
871
u32 McGeneralizedCarveout1Access2;
872
u32 McGeneralizedCarveout1Access3;
873
u32 McGeneralizedCarveout1Access4;
874
u32 McGeneralizedCarveout1ForceInternalAccess0;
875
u32 McGeneralizedCarveout1ForceInternalAccess1;
876
u32 McGeneralizedCarveout1ForceInternalAccess2;
877
u32 McGeneralizedCarveout1ForceInternalAccess3;
878
u32 McGeneralizedCarveout1ForceInternalAccess4;
879
u32 McGeneralizedCarveout1Cfg0;
880
881
u32 McGeneralizedCarveout2Bom;
882
u32 McGeneralizedCarveout2BomHi;
883
u32 McGeneralizedCarveout2Size128kb;
884
u32 McGeneralizedCarveout2Access0;
885
u32 McGeneralizedCarveout2Access1;
886
u32 McGeneralizedCarveout2Access2;
887
u32 McGeneralizedCarveout2Access3;
888
u32 McGeneralizedCarveout2Access4;
889
u32 McGeneralizedCarveout2ForceInternalAccess0;
890
u32 McGeneralizedCarveout2ForceInternalAccess1;
891
u32 McGeneralizedCarveout2ForceInternalAccess2;
892
u32 McGeneralizedCarveout2ForceInternalAccess3;
893
u32 McGeneralizedCarveout2ForceInternalAccess4;
894
u32 McGeneralizedCarveout2Cfg0;
895
896
u32 McGeneralizedCarveout3Bom;
897
u32 McGeneralizedCarveout3BomHi;
898
u32 McGeneralizedCarveout3Size128kb;
899
u32 McGeneralizedCarveout3Access0;
900
u32 McGeneralizedCarveout3Access1;
901
u32 McGeneralizedCarveout3Access2;
902
u32 McGeneralizedCarveout3Access3;
903
u32 McGeneralizedCarveout3Access4;
904
u32 McGeneralizedCarveout3ForceInternalAccess0;
905
u32 McGeneralizedCarveout3ForceInternalAccess1;
906
u32 McGeneralizedCarveout3ForceInternalAccess2;
907
u32 McGeneralizedCarveout3ForceInternalAccess3;
908
u32 McGeneralizedCarveout3ForceInternalAccess4;
909
u32 McGeneralizedCarveout3Cfg0;
910
911
u32 McGeneralizedCarveout4Bom;
912
u32 McGeneralizedCarveout4BomHi;
913
u32 McGeneralizedCarveout4Size128kb;
914
u32 McGeneralizedCarveout4Access0;
915
u32 McGeneralizedCarveout4Access1;
916
u32 McGeneralizedCarveout4Access2;
917
u32 McGeneralizedCarveout4Access3;
918
u32 McGeneralizedCarveout4Access4;
919
u32 McGeneralizedCarveout4ForceInternalAccess0;
920
u32 McGeneralizedCarveout4ForceInternalAccess1;
921
u32 McGeneralizedCarveout4ForceInternalAccess2;
922
u32 McGeneralizedCarveout4ForceInternalAccess3;
923
u32 McGeneralizedCarveout4ForceInternalAccess4;
924
u32 McGeneralizedCarveout4Cfg0;
925
926
u32 McGeneralizedCarveout5Bom;
927
u32 McGeneralizedCarveout5BomHi;
928
u32 McGeneralizedCarveout5Size128kb;
929
u32 McGeneralizedCarveout5Access0;
930
u32 McGeneralizedCarveout5Access1;
931
u32 McGeneralizedCarveout5Access2;
932
u32 McGeneralizedCarveout5Access3;
933
u32 McGeneralizedCarveout5Access4;
934
u32 McGeneralizedCarveout5ForceInternalAccess0;
935
u32 McGeneralizedCarveout5ForceInternalAccess1;
936
u32 McGeneralizedCarveout5ForceInternalAccess2;
937
u32 McGeneralizedCarveout5ForceInternalAccess3;
938
u32 McGeneralizedCarveout5ForceInternalAccess4;
939
u32 McGeneralizedCarveout5Cfg0;
940
941
/* Specifies enable for CA training */
942
u32 EmcCaTrainingEnable;
943
944
/* Set if bit 6 select is greater than bit 7 select; uses aremc.
945
spec packet SWIZZLE_BIT6_GT_BIT7 */
946
u32 SwizzleRankByteEncode;
947
/* Specifies enable and offset for patched boot ROM write */
948
u32 BootRomPatchControl;
949
/* Specifies data for patched boot ROM write */
950
u32 BootRomPatchData;
951
952
/* Specifies the value for MC_MTS_CARVEOUT_BOM */
953
u32 McMtsCarveoutBom;
954
/* Specifies the value for MC_MTS_CARVEOUT_ADR_HI */
955
u32 McMtsCarveoutAdrHi;
956
/* Specifies the value for MC_MTS_CARVEOUT_SIZE_MB */
957
u32 McMtsCarveoutSizeMb;
958
/* Specifies the value for MC_MTS_CARVEOUT_REG_CTRL */
959
u32 McMtsCarveoutRegCtrl;
960
961
/* End */
962
};
963
964
#endif /* __SOC_NVIDIA_TEGRA210_SDRAM_PARAM_H__ */
965
966