Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
CTCaer
GitHub Repository: CTCaer/hekate
Path: blob/master/bdk/mem/sdram_param_t210b01.h
1476 views
1
/*
2
* Copyright (c) 2020 CTCaer
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms and conditions of the GNU General Public License,
6
* version 2, as published by the Free Software Foundation.
7
*
8
* This program is distributed in the hope it will be useful, but WITHOUT
9
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11
* more details.
12
*/
13
14
#ifndef _SDRAM_PARAM_T210B01_H_
15
#define _SDRAM_PARAM_T210B01_H_
16
17
typedef struct _sdram_params_t210b01_t
18
{
19
/* Specifies the type of memory device */
20
u32 memory_type;
21
22
/* MC/EMC clock source configuration */
23
24
/* Specifies the M value for PllM */
25
u32 pllm_input_divider;
26
/* Specifies the N value for PllM */
27
u32 pllm_feedback_divider;
28
/* Specifies the time to wait for PLLM to lock (in microseconds) */
29
u32 pllm_stable_time;
30
/* Specifies misc. control bits */
31
u32 pllm_setup_control;
32
/* Specifies the P value for PLLM */
33
u32 pllm_post_divider;
34
/* Specifies value for Charge Pump Gain Control */
35
u32 pllm_kcp;
36
/* Specifies VCO gain */
37
u32 pllm_kvco;
38
/* Spare BCT param */
39
u32 emc_bct_spare0;
40
/* Spare BCT param */
41
u32 emc_bct_spare1;
42
/* Spare BCT param */
43
u32 emc_bct_spare2;
44
/* Spare BCT param */
45
u32 emc_bct_spare3;
46
/* Spare BCT param */
47
u32 emc_bct_spare4;
48
/* Spare BCT param */
49
u32 emc_bct_spare5;
50
/* Spare BCT param */
51
u32 emc_bct_spare6;
52
/* Spare BCT param */
53
u32 emc_bct_spare7;
54
/* Spare BCT param */
55
u32 emc_bct_spare8;
56
/* Spare BCT param */
57
u32 emc_bct_spare9;
58
/* Spare BCT param */
59
u32 emc_bct_spare10;
60
/* Spare BCT param */
61
u32 emc_bct_spare11;
62
/* Spare BCT param */
63
u32 emc_bct_spare12;
64
/* Spare BCT param */
65
u32 emc_bct_spare13;
66
/* Spare BCT param */
67
u32 emc_bct_spare_secure0;
68
/* Spare BCT param */
69
u32 emc_bct_spare_secure1;
70
/* Spare BCT param */
71
u32 emc_bct_spare_secure2;
72
/* Spare BCT param */
73
u32 emc_bct_spare_secure3;
74
/* Spare BCT param */
75
u32 emc_bct_spare_secure4;
76
/* Spare BCT param */
77
u32 emc_bct_spare_secure5;
78
/* Spare BCT param */
79
u32 emc_bct_spare_secure6;
80
/* Spare BCT param */
81
u32 emc_bct_spare_secure7;
82
/* Spare BCT param */
83
u32 emc_bct_spare_secure8;
84
/* Spare BCT param */
85
u32 emc_bct_spare_secure9;
86
/* Spare BCT param */
87
u32 emc_bct_spare_secure10;
88
/* Spare BCT param */
89
u32 emc_bct_spare_secure11;
90
/* Spare BCT param */
91
u32 emc_bct_spare_secure12;
92
/* Spare BCT param */
93
u32 emc_bct_spare_secure13;
94
/* Spare BCT param */
95
u32 emc_bct_spare_secure14;
96
/* Spare BCT param */
97
u32 emc_bct_spare_secure15;
98
/* Spare BCT param */
99
u32 emc_bct_spare_secure16;
100
/* Spare BCT param */
101
u32 emc_bct_spare_secure17;
102
/* Spare BCT param */
103
u32 emc_bct_spare_secure18;
104
/* Spare BCT param */
105
u32 emc_bct_spare_secure19;
106
/* Spare BCT param */
107
u32 emc_bct_spare_secure20;
108
/* Spare BCT param */
109
u32 emc_bct_spare_secure21;
110
/* Spare BCT param */
111
u32 emc_bct_spare_secure22;
112
/* Spare BCT param */
113
u32 emc_bct_spare_secure23;
114
115
/* Defines EMC_2X_CLK_SRC, EMC_2X_CLK_DIVISOR, EMC_INVERT_DCD */
116
u32 emc_clock_source;
117
u32 emc_clock_source_dll;
118
119
/* Defines possible override for PLLLM_MISC2 */
120
u32 clk_rst_pllm_misc20_override;
121
/* enables override for PLLLM_MISC2 */
122
u32 clk_rst_pllm_misc20_override_enable;
123
/* defines CLK_ENB_MC1 in register clk_rst_controller_clk_enb_w_clr */
124
u32 clear_clock2_mc1;
125
126
/* Auto-calibration of EMC pads */
127
128
/* Specifies the value for EMC_AUTO_CAL_INTERVAL */
129
u32 emc_auto_cal_interval;
130
/*
131
* Specifies the value for EMC_AUTO_CAL_CONFIG
132
* Note: Trigger bits are set by the SDRAM code.
133
*/
134
u32 emc_auto_cal_config;
135
136
/* Specifies the value for EMC_AUTO_CAL_CONFIG2 */
137
u32 emc_auto_cal_config2;
138
139
/* Specifies the value for EMC_AUTO_CAL_CONFIG3 */
140
u32 emc_auto_cal_config3;
141
u32 emc_auto_cal_config4;
142
u32 emc_auto_cal_config5;
143
u32 emc_auto_cal_config6;
144
u32 emc_auto_cal_config7;
145
u32 emc_auto_cal_config8;
146
u32 emc_auto_cal_config9;
147
148
/* Specifies the value for EMC_AUTO_CAL_VREF_SEL_0 */
149
u32 emc_auto_cal_vref_sel0;
150
u32 emc_auto_cal_vref_sel1;
151
152
/* Specifies the value for EMC_AUTO_CAL_CHANNEL */
153
u32 emc_auto_cal_channel;
154
155
/* Specifies the value for EMC_PMACRO_AUTOCAL_CFG_0 */
156
u32 emc_pmacro_auto_cal_cfg0;
157
u32 emc_pmacro_auto_cal_cfg1;
158
u32 emc_pmacro_auto_cal_cfg2;
159
160
u32 emc_pmacro_rx_term;
161
u32 emc_pmacro_dq_tx_drive;
162
u32 emc_pmacro_ca_tx_drive;
163
u32 emc_pmacro_cmd_tx_drive;
164
u32 emc_pmacro_auto_cal_common;
165
u32 emc_pmacro_zcrtl;
166
167
/*
168
* Specifies the time for the calibration
169
* to stabilize (in microseconds)
170
*/
171
u32 emc_auto_cal_wait;
172
173
u32 emc_xm2_comp_pad_ctrl;
174
u32 emc_xm2_comp_pad_ctrl2;
175
u32 emc_xm2_comp_pad_ctrl3;
176
177
/*
178
* DRAM size information
179
* Specifies the value for EMC_ADR_CFG
180
*/
181
u32 emc_adr_cfg;
182
183
/*
184
* Specifies the time to wait after asserting pin
185
* CKE (in microseconds)
186
*/
187
u32 emc_pin_program_wait;
188
/* Specifies the extra delay before/after pin RESET/CKE command */
189
u32 emc_pin_extra_wait;
190
191
u32 emc_pin_gpio_enable;
192
u32 emc_pin_gpio;
193
194
/*
195
* Specifies the extra delay after the first writing
196
* of EMC_TIMING_CONTROL
197
*/
198
u32 emc_timing_control_wait;
199
200
/* Timing parameters required for the SDRAM */
201
202
/* Specifies the value for EMC_RC */
203
u32 emc_rc;
204
/* Specifies the value for EMC_RFC */
205
u32 emc_rfc;
206
207
u32 emc_rfc_pb;
208
u32 emc_ref_ctrl2;
209
210
/* Specifies the value for EMC_RFC_SLR */
211
u32 emc_rfc_slr;
212
/* Specifies the value for EMC_RAS */
213
u32 emc_ras;
214
/* Specifies the value for EMC_RP */
215
u32 emc_rp;
216
/* Specifies the value for EMC_R2R */
217
u32 emc_r2r;
218
/* Specifies the value for EMC_W2W */
219
u32 emc_w2w;
220
/* Specifies the value for EMC_R2W */
221
u32 emc_r2w;
222
/* Specifies the value for EMC_W2R */
223
u32 emc_w2r;
224
/* Specifies the value for EMC_R2P */
225
u32 emc_r2p;
226
/* Specifies the value for EMC_W2P */
227
u32 emc_w2p;
228
229
u32 emc_tppd;
230
u32 emc_trtm;
231
u32 emc_twtm;
232
u32 emc_tratm;
233
u32 emc_twatm;
234
u32 emc_tr2ref;
235
u32 emc_ccdmw;
236
237
/* Specifies the value for EMC_RD_RCD */
238
u32 emc_rd_rcd;
239
/* Specifies the value for EMC_WR_RCD */
240
u32 emc_wr_rcd;
241
/* Specifies the value for EMC_RRD */
242
u32 emc_rrd;
243
/* Specifies the value for EMC_REXT */
244
u32 emc_rext;
245
/* Specifies the value for EMC_WEXT */
246
u32 emc_wext;
247
/* Specifies the value for EMC_WDV */
248
u32 emc_wdv;
249
250
u32 emc_wdv_chk;
251
u32 emc_wsv;
252
u32 emc_wev;
253
254
/* Specifies the value for EMC_WDV_MASK */
255
u32 emc_wdv_mask;
256
257
u32 emc_ws_duration;
258
u32 emc_we_duration;
259
260
/* Specifies the value for EMC_QUSE */
261
u32 emc_quse;
262
/* Specifies the value for EMC_QUSE_WIDTH */
263
u32 emc_quse_width;
264
/* Specifies the value for EMC_IBDLY */
265
u32 emc_ibdly;
266
267
u32 emc_obdly;
268
269
/* Specifies the value for EMC_EINPUT */
270
u32 emc_einput;
271
/* Specifies the value for EMC_EINPUT_DURATION */
272
u32 emc_einput_duration;
273
/* Specifies the value for EMC_PUTERM_EXTRA */
274
u32 emc_puterm_extra;
275
/* Specifies the value for EMC_PUTERM_WIDTH */
276
u32 emc_puterm_width;
277
278
u32 emc_qrst;
279
u32 emc_qsafe;
280
u32 emc_rdv;
281
u32 emc_rdv_mask;
282
283
u32 emc_rdv_early;
284
u32 emc_rdv_early_mask;
285
286
/* Specifies the value for EMC_QPOP */
287
u32 emc_qpop;
288
289
/* Specifies the value for EMC_REFRESH */
290
u32 emc_refresh;
291
/* Specifies the value for EMC_BURST_REFRESH_NUM */
292
u32 emc_burst_refresh_num;
293
/* Specifies the value for EMC_PRE_REFRESH_REQ_CNT */
294
u32 emc_prerefresh_req_cnt;
295
/* Specifies the value for EMC_PDEX2WR */
296
u32 emc_pdex2wr;
297
/* Specifies the value for EMC_PDEX2RD */
298
u32 emc_pdex2rd;
299
/* Specifies the value for EMC_PCHG2PDEN */
300
u32 emc_pchg2pden;
301
/* Specifies the value for EMC_ACT2PDEN */
302
u32 emc_act2pden;
303
/* Specifies the value for EMC_AR2PDEN */
304
u32 emc_ar2pden;
305
/* Specifies the value for EMC_RW2PDEN */
306
u32 emc_rw2pden;
307
308
u32 emc_cke2pden;
309
u32 emc_pdex2che;
310
u32 emc_pdex2mrr;
311
312
/* Specifies the value for EMC_TXSR */
313
u32 emc_txsr;
314
/* Specifies the value for EMC_TXSRDLL */
315
u32 emc_txsr_dll;
316
/* Specifies the value for EMC_TCKE */
317
u32 emc_tcke;
318
/* Specifies the value for EMC_TCKESR */
319
u32 emc_tckesr;
320
/* Specifies the value for EMC_TPD */
321
u32 emc_tpd;
322
/* Specifies the value for EMC_TFAW */
323
u32 emc_tfaw;
324
/* Specifies the value for EMC_TRPAB */
325
u32 emc_trpab;
326
/* Specifies the value for EMC_TCLKSTABLE */
327
u32 emc_tclkstable;
328
/* Specifies the value for EMC_TCLKSTOP */
329
u32 emc_tclkstop;
330
/* Specifies the value for EMC_TREFBW */
331
u32 emc_trefbw;
332
333
/* FBIO configuration values */
334
335
/* Specifies the value for EMC_FBIO_CFG5 */
336
u32 emc_fbio_cfg5;
337
/* Specifies the value for EMC_FBIO_CFG7 */
338
u32 emc_fbio_cfg7;
339
u32 emc_fbio_cfg8;
340
341
/* Command mapping for CMD brick 0 */
342
u32 emc_cmd_mapping_cmd0_0;
343
u32 emc_cmd_mapping_cmd0_1;
344
u32 emc_cmd_mapping_cmd0_2;
345
u32 emc_cmd_mapping_cmd1_0;
346
u32 emc_cmd_mapping_cmd1_1;
347
u32 emc_cmd_mapping_cmd1_2;
348
u32 emc_cmd_mapping_cmd2_0;
349
u32 emc_cmd_mapping_cmd2_1;
350
u32 emc_cmd_mapping_cmd2_2;
351
u32 emc_cmd_mapping_cmd3_0;
352
u32 emc_cmd_mapping_cmd3_1;
353
u32 emc_cmd_mapping_cmd3_2;
354
u32 emc_cmd_mapping_byte;
355
356
/* Specifies the value for EMC_FBIO_SPARE */
357
u32 emc_fbio_spare;
358
359
/* Specifies the value for EMC_CFG_RSV */
360
u32 emc_cfg_rsv;
361
362
/* MRS command values */
363
364
/* Specifies the value for EMC_MRS */
365
u32 emc_mrs;
366
/* Specifies the MP0 command to initialize mode registers */
367
u32 emc_emrs;
368
/* Specifies the MP2 command to initialize mode registers */
369
u32 emc_emrs2;
370
/* Specifies the MP3 command to initialize mode registers */
371
u32 emc_emrs3;
372
/* Specifies the programming to LPDDR2 Mode Register 1 at cold boot */
373
u32 emc_mrw1;
374
/* Specifies the programming to LPDDR2 Mode Register 2 at cold boot */
375
u32 emc_mrw2;
376
/* Specifies the programming to LPDDR2 Mode Register 3 at cold boot */
377
u32 emc_mrw3;
378
/* Specifies the programming to LPDDR2 Mode Register 11 at cold boot */
379
u32 emc_mrw4;
380
381
/* Specifies the programming to LPDDR4 Mode Register 3 at cold boot */
382
u32 emc_mrw6;
383
/* Specifies the programming to LPDDR4 Mode Register 11 at cold boot */
384
u32 emc_mrw8;
385
/* Specifies the programming to LPDDR4 Mode Register 11 at cold boot */
386
u32 emc_mrw9;
387
/* Specifies the programming to LPDDR4 Mode Register 12 at cold boot */
388
u32 emc_mrw10;
389
/* Specifies the programming to LPDDR4 Mode Register 14 at cold boot */
390
u32 emc_mrw12;
391
/* Specifies the programming to LPDDR4 Mode Register 14 at cold boot */
392
u32 emc_mrw13;
393
/* Specifies the programming to LPDDR4 Mode Register 22 at cold boot */
394
u32 emc_mrw14;
395
396
/*
397
* Specifies the programming to extra LPDDR2 Mode Register
398
* at cold boot
399
*/
400
u32 emc_mrw_extra;
401
/*
402
* Specifies the programming to extra LPDDR2 Mode Register
403
* at warm boot
404
*/
405
u32 emc_warm_boot_mrw_extra;
406
/*
407
* Specify the enable of extra Mode Register programming at
408
* warm boot
409
*/
410
u32 emc_warm_boot_extramode_reg_write_enable;
411
/*
412
* Specify the enable of extra Mode Register programming at
413
* cold boot
414
*/
415
u32 emc_extramode_reg_write_enable;
416
417
/* Specifies the EMC_MRW reset command value */
418
u32 emc_mrw_reset_command;
419
/* Specifies the EMC Reset wait time (in microseconds) */
420
u32 emc_mrw_reset_ninit_wait;
421
/* Specifies the value for EMC_MRS_WAIT_CNT */
422
u32 emc_mrs_wait_cnt;
423
/* Specifies the value for EMC_MRS_WAIT_CNT2 */
424
u32 emc_mrs_wait_cnt2;
425
426
/* EMC miscellaneous configurations */
427
428
/* Specifies the value for EMC_CFG */
429
u32 emc_cfg;
430
/* Specifies the value for EMC_CFG_2 */
431
u32 emc_cfg2;
432
/* Specifies the pipe bypass controls */
433
u32 emc_cfg_pipe;
434
435
u32 emc_cfg_pipe_clk;
436
u32 emc_fdpd_ctrl_cmd_no_ramp;
437
u32 emc_cfg_update;
438
439
/* Specifies the value for EMC_DBG */
440
u32 emc_dbg;
441
442
u32 emc_dbg_write_mux;
443
444
/* Specifies the value for EMC_CMDQ */
445
u32 emc_cmd_q;
446
/* Specifies the value for EMC_MC2EMCQ */
447
u32 emc_mc2emc_q;
448
/* Specifies the value for EMC_DYN_SELF_REF_CONTROL */
449
u32 emc_dyn_self_ref_control;
450
451
/* Specifies the value for MEM_INIT_DONE */
452
u32 ahb_arbitration_xbar_ctrl_meminit_done;
453
454
/* Specifies the value for EMC_CFG_DIG_DLL */
455
u32 emc_cfg_dig_dll;
456
u32 emc_cfg_dig_dll_1;
457
458
/* Specifies the value for EMC_CFG_DIG_DLL_PERIOD */
459
u32 emc_cfg_dig_dll_period;
460
/* Specifies the value of *DEV_SELECTN of various EMC registers */
461
u32 emc_dev_select;
462
463
/* Specifies the value for EMC_SEL_DPD_CTRL */
464
u32 emc_sel_dpd_ctrl;
465
466
/* Pads trimmer delays */
467
u32 emc_fdpd_ctrl_dq;
468
u32 emc_fdpd_ctrl_cmd;
469
u32 emc_pmacro_ib_vref_dq_0;
470
u32 emc_pmacro_ib_vref_dq_1;
471
u32 emc_pmacro_ib_vref_dqs_0;
472
u32 emc_pmacro_ib_vref_dqs_1;
473
u32 emc_pmacro_ib_rxrt;
474
u32 emc_cfg_pipe1;
475
u32 emc_cfg_pipe2;
476
477
/* Specifies the value for EMC_PMACRO_QUSE_DDLL_RANK0_0 */
478
u32 emc_pmacro_quse_ddll_rank0_0;
479
u32 emc_pmacro_quse_ddll_rank0_1;
480
u32 emc_pmacro_quse_ddll_rank0_2;
481
u32 emc_pmacro_quse_ddll_rank0_3;
482
u32 emc_pmacro_quse_ddll_rank0_4;
483
u32 emc_pmacro_quse_ddll_rank0_5;
484
u32 emc_pmacro_quse_ddll_rank1_0;
485
u32 emc_pmacro_quse_ddll_rank1_1;
486
u32 emc_pmacro_quse_ddll_rank1_2;
487
u32 emc_pmacro_quse_ddll_rank1_3;
488
u32 emc_pmacro_quse_ddll_rank1_4;
489
u32 emc_pmacro_quse_ddll_rank1_5;
490
491
u32 emc_pmacro_ob_ddll_long_dq_rank0_0;
492
u32 emc_pmacro_ob_ddll_long_dq_rank0_1;
493
u32 emc_pmacro_ob_ddll_long_dq_rank0_2;
494
u32 emc_pmacro_ob_ddll_long_dq_rank0_3;
495
u32 emc_pmacro_ob_ddll_long_dq_rank0_4;
496
u32 emc_pmacro_ob_ddll_long_dq_rank0_5;
497
u32 emc_pmacro_ob_ddll_long_dq_rank1_0;
498
u32 emc_pmacro_ob_ddll_long_dq_rank1_1;
499
u32 emc_pmacro_ob_ddll_long_dq_rank1_2;
500
u32 emc_pmacro_ob_ddll_long_dq_rank1_3;
501
u32 emc_pmacro_ob_ddll_long_dq_rank1_4;
502
u32 emc_pmacro_ob_ddll_long_dq_rank1_5;
503
504
u32 emc_pmacro_ob_ddll_long_dqs_rank0_0;
505
u32 emc_pmacro_ob_ddll_long_dqs_rank0_1;
506
u32 emc_pmacro_ob_ddll_long_dqs_rank0_2;
507
u32 emc_pmacro_ob_ddll_long_dqs_rank0_3;
508
u32 emc_pmacro_ob_ddll_long_dqs_rank0_4;
509
u32 emc_pmacro_ob_ddll_long_dqs_rank0_5;
510
u32 emc_pmacro_ob_ddll_long_dqs_rank1_0;
511
u32 emc_pmacro_ob_ddll_long_dqs_rank1_1;
512
u32 emc_pmacro_ob_ddll_long_dqs_rank1_2;
513
u32 emc_pmacro_ob_ddll_long_dqs_rank1_3;
514
u32 emc_pmacro_ob_ddll_long_dqs_rank1_4;
515
u32 emc_pmacro_ob_ddll_long_dqs_rank1_5;
516
517
u32 emc_pmacro_ib_ddll_long_dqs_rank0_0;
518
u32 emc_pmacro_ib_ddll_long_dqs_rank0_1;
519
u32 emc_pmacro_ib_ddll_long_dqs_rank0_2;
520
u32 emc_pmacro_ib_ddll_long_dqs_rank0_3;
521
u32 emc_pmacro_ib_ddll_long_dqs_rank1_0;
522
u32 emc_pmacro_ib_ddll_long_dqs_rank1_1;
523
u32 emc_pmacro_ib_ddll_long_dqs_rank1_2;
524
u32 emc_pmacro_ib_ddll_long_dqs_rank1_3;
525
526
u32 emc_pmacro_ddll_long_cmd_0;
527
u32 emc_pmacro_ddll_long_cmd_1;
528
u32 emc_pmacro_ddll_long_cmd_2;
529
u32 emc_pmacro_ddll_long_cmd_3;
530
u32 emc_pmacro_ddll_long_cmd_4;
531
u32 emc_pmacro_ddll_short_cmd_0;
532
u32 emc_pmacro_ddll_short_cmd_1;
533
u32 emc_pmacro_ddll_short_cmd_2;
534
535
u32 emc_pmacro_ddll_periodic_offset;
536
537
/*
538
* Specifies the delay after asserting CKE pin during a WarmBoot0
539
* sequence (in microseconds)
540
*/
541
u32 warm_boot_wait;
542
543
/* Specifies the value for EMC_ODT_WRITE */
544
u32 emc_odt_write;
545
546
/* Periodic ZQ calibration */
547
548
/*
549
* Specifies the value for EMC_ZCAL_INTERVAL
550
* Value 0 disables ZQ calibration
551
*/
552
u32 emc_zcal_interval;
553
/* Specifies the value for EMC_ZCAL_WAIT_CNT */
554
u32 emc_zcal_wait_cnt;
555
/* Specifies the value for EMC_ZCAL_MRW_CMD */
556
u32 emc_zcal_mrw_cmd;
557
558
/* DRAM initialization sequence flow control */
559
560
/* Specifies the MRS command value for resetting DLL */
561
u32 emc_mrs_reset_dll;
562
/* Specifies the command for ZQ initialization of device 0 */
563
u32 emc_zcal_init_dev0;
564
/* Specifies the command for ZQ initialization of device 1 */
565
u32 emc_zcal_init_dev1;
566
/*
567
* Specifies the wait time after programming a ZQ initialization
568
* command (in microseconds)
569
*/
570
u32 emc_zcal_init_wait;
571
/*
572
* Specifies the enable for ZQ calibration at cold boot [bit 0]
573
* and warm boot [bit 1]
574
*/
575
u32 emc_zcal_warm_cold_boot_enables;
576
577
/*
578
* Specifies the MRW command to LPDDR2 for ZQ calibration
579
* on warmboot
580
*/
581
/* Is issued to both devices separately */
582
u32 emc_mrw_lpddr2zcal_warm_boot;
583
/*
584
* Specifies the ZQ command to DDR3 for ZQ calibration on warmboot
585
* Is issued to both devices separately
586
*/
587
u32 emc_zqcal_ddr3_warm_boot;
588
589
u32 emc_zqcal_lpddr4_warm_boot;
590
591
/*
592
* Specifies the wait time for ZQ calibration on warmboot
593
* (in microseconds)
594
*/
595
u32 emc_zcal_warm_boot_wait;
596
/*
597
* Specifies the enable for DRAM Mode Register programming
598
* at warm boot
599
*/
600
u32 emc_mrs_warm_boot_enable;
601
/*
602
* Specifies the wait time after sending an MRS DLL reset command
603
* in microseconds)
604
*/
605
u32 emc_mrs_reset_dll_wait;
606
/* Specifies the extra MRS command to initialize mode registers */
607
u32 emc_mrs_extra;
608
/* Specifies the extra MRS command at warm boot */
609
u32 emc_warm_boot_mrs_extra;
610
/* Specifies the EMRS command to enable the DDR2 DLL */
611
u32 emc_emrs_ddr2_dll_enable;
612
/* Specifies the MRS command to reset the DDR2 DLL */
613
u32 emc_mrs_ddr2_dll_reset;
614
/* Specifies the EMRS command to set OCD calibration */
615
u32 emc_emrs_ddr2_ocd_calib;
616
/*
617
* Specifies the wait between initializing DDR and setting OCD
618
* calibration (in microseconds)
619
*/
620
u32 emc_ddr2_wait;
621
/* Specifies the value for EMC_CLKEN_OVERRIDE */
622
u32 emc_clken_override;
623
/*
624
* Specifies LOG2 of the extra refresh numbers after booting
625
* Program 0 to disable
626
*/
627
u32 emc_extra_refresh_num;
628
/* Specifies the master override for all EMC clocks */
629
u32 emc_clken_override_allwarm_boot;
630
/* Specifies the master override for all MC clocks */
631
u32 mc_clken_override_allwarm_boot;
632
/* Specifies digital dll period, choosing between 4 to 64 ms */
633
u32 emc_cfg_dig_dll_period_warm_boot;
634
635
/* Pad controls */
636
637
/* Specifies the value for PMC_VDDP_SEL */
638
u32 pmc_vddp_sel;
639
/* Specifies the wait time after programming PMC_VDDP_SEL */
640
u32 pmc_vddp_sel_wait;
641
/* Specifies the value for PMC_DDR_CFG */
642
u32 pmc_ddr_cfg;
643
/* Specifies the value for PMC_IO_DPD3_REQ */
644
u32 pmc_io_dpd3_req;
645
/* Specifies the wait time after programming PMC_IO_DPD3_REQ */
646
u32 pmc_io_dpd3_req_wait;
647
648
u32 pmc_io_dpd4_req_wait;
649
650
/* Specifies the value for PMC_REG_SHORT */
651
u32 pmc_reg_short;
652
/* Specifies the value for PMC_NO_IOPOWER */
653
u32 pmc_no_io_power;
654
655
u32 pmc_ddr_ctrl_wait;
656
u32 pmc_ddr_ctrl;
657
658
/* Specifies the value for EMC_ACPD_CONTROL */
659
u32 emc_acpd_control;
660
661
/* Specifies the value for EMC_SWIZZLE_RANK0_BYTE0 */
662
u32 emc_swizzle_rank0_byte0;
663
/* Specifies the value for EMC_SWIZZLE_RANK0_BYTE1 */
664
u32 emc_swizzle_rank0_byte1;
665
/* Specifies the value for EMC_SWIZZLE_RANK0_BYTE2 */
666
u32 emc_swizzle_rank0_byte2;
667
/* Specifies the value for EMC_SWIZZLE_RANK0_BYTE3 */
668
u32 emc_swizzle_rank0_byte3;
669
/* Specifies the value for EMC_SWIZZLE_RANK1_BYTE0 */
670
u32 emc_swizzle_rank1_byte0;
671
/* Specifies the value for EMC_SWIZZLE_RANK1_BYTE1 */
672
u32 emc_swizzle_rank1_byte1;
673
/* Specifies the value for EMC_SWIZZLE_RANK1_BYTE2 */
674
u32 emc_swizzle_rank1_byte2;
675
/* Specifies the value for EMC_SWIZZLE_RANK1_BYTE3 */
676
u32 emc_swizzle_rank1_byte3;
677
678
/* Specifies the value for EMC_TXDSRVTTGEN */
679
u32 emc_txdsrvttgen;
680
681
/* Specifies the value for EMC_DATA_BRLSHFT_0 */
682
u32 emc_data_brlshft0;
683
u32 emc_data_brlshft1;
684
685
u32 emc_dqs_brlshft0;
686
u32 emc_dqs_brlshft1;
687
688
u32 emc_cmd_brlshft0;
689
u32 emc_cmd_brlshft1;
690
u32 emc_cmd_brlshft2;
691
u32 emc_cmd_brlshft3;
692
693
u32 emc_quse_brlshft0;
694
u32 emc_quse_brlshft1;
695
u32 emc_quse_brlshft2;
696
u32 emc_quse_brlshft3;
697
698
u32 emc_dll_cfg0;
699
u32 emc_dll_cfg1;
700
701
u32 emc_pmc_scratch1;
702
u32 emc_pmc_scratch2;
703
u32 emc_pmc_scratch3;
704
705
u32 emc_pmacro_pad_cfg_ctrl;
706
707
u32 emc_pmacro_vttgen_ctrl0;
708
u32 emc_pmacro_vttgen_ctrl1;
709
u32 emc_pmacro_vttgen_ctrl2;
710
u32 emc_pmacro_dsr_vttgen_ctrl0;
711
u32 emc_pmacro_brick_ctrl_rfu1;
712
u32 emc_pmacro_cmd_brick_ctrl_fdpd;
713
u32 emc_pmacro_brick_ctrl_rfu2;
714
u32 emc_pmacro_data_brick_ctrl_fdpd;
715
u32 emc_pmacro_bg_bias_ctrl0;
716
u32 emc_pmacro_data_pad_rx_ctrl;
717
u32 emc_pmacro_cmd_pad_rx_ctrl;
718
u32 emc_pmacro_data_rx_term_mode;
719
u32 emc_pmacro_cmd_rx_term_mode;
720
u32 emc_pmacro_data_pad_tx_ctrl;
721
u32 emc_pmacro_cmd_pad_tx_ctrl;
722
u32 emc_cfg3;
723
724
u32 emc_pmacro_tx_pwrd0;
725
u32 emc_pmacro_tx_pwrd1;
726
u32 emc_pmacro_tx_pwrd2;
727
u32 emc_pmacro_tx_pwrd3;
728
u32 emc_pmacro_tx_pwrd4;
729
u32 emc_pmacro_tx_pwrd5;
730
731
u32 emc_config_sample_delay;
732
733
u32 emc_pmacro_brick_mapping0;
734
u32 emc_pmacro_brick_mapping1;
735
u32 emc_pmacro_brick_mapping2;
736
737
u32 emc_pmacro_tx_sel_clk_src0;
738
u32 emc_pmacro_tx_sel_clk_src1;
739
u32 emc_pmacro_tx_sel_clk_src2;
740
u32 emc_pmacro_tx_sel_clk_src3;
741
u32 emc_pmacro_tx_sel_clk_src4;
742
u32 emc_pmacro_tx_sel_clk_src5;
743
744
u32 emc_pmacro_perbit_fgcg_ctrl0;
745
u32 emc_pmacro_perbit_fgcg_ctrl1;
746
u32 emc_pmacro_perbit_fgcg_ctrl2;
747
u32 emc_pmacro_perbit_fgcg_ctrl3;
748
u32 emc_pmacro_perbit_fgcg_ctrl4;
749
u32 emc_pmacro_perbit_fgcg_ctrl5;
750
u32 emc_pmacro_perbit_rfu_ctrl0;
751
u32 emc_pmacro_perbit_rfu_ctrl1;
752
u32 emc_pmacro_perbit_rfu_ctrl2;
753
u32 emc_pmacro_perbit_rfu_ctrl3;
754
u32 emc_pmacro_perbit_rfu_ctrl4;
755
u32 emc_pmacro_perbit_rfu_ctrl5;
756
u32 emc_pmacro_perbit_rfu1_ctrl0;
757
u32 emc_pmacro_perbit_rfu1_ctrl1;
758
u32 emc_pmacro_perbit_rfu1_ctrl2;
759
u32 emc_pmacro_perbit_rfu1_ctrl3;
760
u32 emc_pmacro_perbit_rfu1_ctrl4;
761
u32 emc_pmacro_perbit_rfu1_ctrl5;
762
763
u32 emc_pmacro_data_pi_ctrl;
764
u32 emc_pmacro_cmd_pi_ctrl;
765
766
u32 emc_pmacro_ddll_bypass;
767
768
u32 emc_pmacro_ddll_pwrd0;
769
u32 emc_pmacro_ddll_pwrd1;
770
u32 emc_pmacro_ddll_pwrd2;
771
772
u32 emc_pmacro_cmd_ctrl0;
773
u32 emc_pmacro_cmd_ctrl1;
774
u32 emc_pmacro_cmd_ctrl2;
775
776
/* DRAM size information */
777
778
/* Specifies the value for MC_EMEM_ADR_CFG */
779
u32 mc_emem_adr_cfg;
780
/* Specifies the value for MC_EMEM_ADR_CFG_DEV0 */
781
u32 mc_emem_adr_cfg_dev0;
782
/* Specifies the value for MC_EMEM_ADR_CFG_DEV1 */
783
u32 mc_emem_adr_cfg_dev1;
784
785
u32 mc_emem_adr_cfg_channel_mask;
786
787
/* Specifies the value for MC_EMEM_BANK_SWIZZLE_CFG0 */
788
u32 mc_emem_adr_cfg_bank_mask0;
789
/* Specifies the value for MC_EMEM_BANK_SWIZZLE_CFG1 */
790
u32 mc_emem_adr_cfg_bank_mask1;
791
/* Specifies the value for MC_EMEM_BANK_SWIZZLE_CFG2 */
792
u32 mc_emem_adr_cfg_bank_mask2;
793
794
/*
795
* Specifies the value for MC_EMEM_CFG which holds the external memory
796
* size (in KBytes)
797
*/
798
u32 mc_emem_cfg;
799
800
/* MC arbitration configuration */
801
802
/* Specifies the value for MC_EMEM_ARB_CFG */
803
u32 mc_emem_arb_cfg;
804
/* Specifies the value for MC_EMEM_ARB_OUTSTANDING_REQ */
805
u32 mc_emem_arb_outstanding_req;
806
807
u32 emc_emem_arb_refpb_hp_ctrl;
808
u32 emc_emem_arb_refpb_bank_ctrl;
809
810
/* Specifies the value for MC_EMEM_ARB_TIMING_RCD */
811
u32 mc_emem_arb_timing_rcd;
812
/* Specifies the value for MC_EMEM_ARB_TIMING_RP */
813
u32 mc_emem_arb_timing_rp;
814
/* Specifies the value for MC_EMEM_ARB_TIMING_RC */
815
u32 mc_emem_arb_timing_rc;
816
/* Specifies the value for MC_EMEM_ARB_TIMING_RAS */
817
u32 mc_emem_arb_timing_ras;
818
/* Specifies the value for MC_EMEM_ARB_TIMING_FAW */
819
u32 mc_emem_arb_timing_faw;
820
/* Specifies the value for MC_EMEM_ARB_TIMING_RRD */
821
u32 mc_emem_arb_timing_rrd;
822
/* Specifies the value for MC_EMEM_ARB_TIMING_RAP2PRE */
823
u32 mc_emem_arb_timing_rap2pre;
824
/* Specifies the value for MC_EMEM_ARB_TIMING_WAP2PRE */
825
u32 mc_emem_arb_timing_wap2pre;
826
/* Specifies the value for MC_EMEM_ARB_TIMING_R2R */
827
u32 mc_emem_arb_timing_r2r;
828
/* Specifies the value for MC_EMEM_ARB_TIMING_W2W */
829
u32 mc_emem_arb_timing_w2w;
830
/* Specifies the value for MC_EMEM_ARB_TIMING_R2W */
831
u32 mc_emem_arb_timing_r2w;
832
/* Specifies the value for MC_EMEM_ARB_TIMING_W2R */
833
u32 mc_emem_arb_timing_w2r;
834
835
u32 mc_emem_arb_timing_rfcpb;
836
837
/* Specifies the value for MC_EMEM_ARB_DA_TURNS */
838
u32 mc_emem_arb_da_turns;
839
/* Specifies the value for MC_EMEM_ARB_DA_COVERS */
840
u32 mc_emem_arb_da_covers;
841
/* Specifies the value for MC_EMEM_ARB_MISC0 */
842
u32 mc_emem_arb_misc0;
843
/* Specifies the value for MC_EMEM_ARB_MISC1 */
844
u32 mc_emem_arb_misc1;
845
u32 mc_emem_arb_misc2;
846
847
/* Specifies the value for MC_EMEM_ARB_RING1_THROTTLE */
848
u32 mc_emem_arb_ring1_throttle;
849
/* Specifies the value for MC_EMEM_ARB_OVERRIDE */
850
u32 mc_emem_arb_override;
851
/* Specifies the value for MC_EMEM_ARB_OVERRIDE_1 */
852
u32 mc_emem_arb_override1;
853
/* Specifies the value for MC_EMEM_ARB_RSV */
854
u32 mc_emem_arb_rsv;
855
856
u32 mc_da_cfg0;
857
u32 mc_emem_arb_timing_ccdmw;
858
859
/* Specifies the value for MC_CLKEN_OVERRIDE */
860
u32 mc_clken_override;
861
862
/* Specifies the value for MC_STAT_CONTROL */
863
u32 mc_stat_control;
864
/* Specifies the value for MC_VIDEO_PROTECT_BOM */
865
u32 mc_video_protect_bom;
866
/* Specifies the value for MC_VIDEO_PROTECT_BOM_ADR_HI */
867
u32 mc_video_protect_bom_adr_hi;
868
/* Specifies the value for MC_VIDEO_PROTECT_SIZE_MB */
869
u32 mc_video_protect_size_mb;
870
/* Specifies the value for MC_VIDEO_PROTECT_VPR_OVERRIDE */
871
u32 mc_video_protect_vpr_override;
872
/* Specifies the value for MC_VIDEO_PROTECT_VPR_OVERRIDE1 */
873
u32 mc_video_protect_vpr_override1;
874
/* Specifies the value for MC_VIDEO_PROTECT_GPU_OVERRIDE_0 */
875
u32 mc_video_protect_gpu_override0;
876
/* Specifies the value for MC_VIDEO_PROTECT_GPU_OVERRIDE_1 */
877
u32 mc_video_protect_gpu_override1;
878
/* Specifies the value for MC_SEC_CARVEOUT_BOM */
879
u32 mc_sec_carveout_bom;
880
/* Specifies the value for MC_SEC_CARVEOUT_ADR_HI */
881
u32 mc_sec_carveout_adr_hi;
882
/* Specifies the value for MC_SEC_CARVEOUT_SIZE_MB */
883
u32 mc_sec_carveout_size_mb;
884
/* Specifies the value for MC_VIDEO_PROTECT_REG_CTRL.VIDEO_PROTECT_WRITE_ACCESS */
885
u32 mc_video_protect_write_access;
886
/* Specifies the value for MC_SEC_CARVEOUT_REG_CTRL.SEC_CARVEOUT_WRITE_ACCESS */
887
u32 mc_sec_carveout_protect_write_access;
888
889
u32 mc_generalized_carveout1_bom;
890
u32 mc_generalized_carveout1_bom_hi;
891
u32 mc_generalized_carveout1_size_128kb;
892
u32 mc_generalized_carveout1_access0;
893
u32 mc_generalized_carveout1_access1;
894
u32 mc_generalized_carveout1_access2;
895
u32 mc_generalized_carveout1_access3;
896
u32 mc_generalized_carveout1_access4;
897
u32 mc_generalized_carveout1_force_internal_access0;
898
u32 mc_generalized_carveout1_force_internal_access1;
899
u32 mc_generalized_carveout1_force_internal_access2;
900
u32 mc_generalized_carveout1_force_internal_access3;
901
u32 mc_generalized_carveout1_force_internal_access4;
902
u32 mc_generalized_carveout1_cfg0;
903
904
u32 mc_generalized_carveout2_bom;
905
u32 mc_generalized_carveout2_bom_hi;
906
u32 mc_generalized_carveout2_size_128kb;
907
u32 mc_generalized_carveout2_access0;
908
u32 mc_generalized_carveout2_access1;
909
u32 mc_generalized_carveout2_access2;
910
u32 mc_generalized_carveout2_access3;
911
u32 mc_generalized_carveout2_access4;
912
u32 mc_generalized_carveout2_force_internal_access0;
913
u32 mc_generalized_carveout2_force_internal_access1;
914
u32 mc_generalized_carveout2_force_internal_access2;
915
u32 mc_generalized_carveout2_force_internal_access3;
916
u32 mc_generalized_carveout2_force_internal_access4;
917
u32 mc_generalized_carveout2_cfg0;
918
919
u32 mc_generalized_carveout3_bom;
920
u32 mc_generalized_carveout3_bom_hi;
921
u32 mc_generalized_carveout3_size_128kb;
922
u32 mc_generalized_carveout3_access0;
923
u32 mc_generalized_carveout3_access1;
924
u32 mc_generalized_carveout3_access2;
925
u32 mc_generalized_carveout3_access3;
926
u32 mc_generalized_carveout3_access4;
927
u32 mc_generalized_carveout3_force_internal_access0;
928
u32 mc_generalized_carveout3_force_internal_access1;
929
u32 mc_generalized_carveout3_force_internal_access2;
930
u32 mc_generalized_carveout3_force_internal_access3;
931
u32 mc_generalized_carveout3_force_internal_access4;
932
u32 mc_generalized_carveout3_cfg0;
933
934
u32 mc_generalized_carveout4_bom;
935
u32 mc_generalized_carveout4_bom_hi;
936
u32 mc_generalized_carveout4_size_128kb;
937
u32 mc_generalized_carveout4_access0;
938
u32 mc_generalized_carveout4_access1;
939
u32 mc_generalized_carveout4_access2;
940
u32 mc_generalized_carveout4_access3;
941
u32 mc_generalized_carveout4_access4;
942
u32 mc_generalized_carveout4_force_internal_access0;
943
u32 mc_generalized_carveout4_force_internal_access1;
944
u32 mc_generalized_carveout4_force_internal_access2;
945
u32 mc_generalized_carveout4_force_internal_access3;
946
u32 mc_generalized_carveout4_force_internal_access4;
947
u32 mc_generalized_carveout4_cfg0;
948
949
u32 mc_generalized_carveout5_bom;
950
u32 mc_generalized_carveout5_bom_hi;
951
u32 mc_generalized_carveout5_size_128kb;
952
u32 mc_generalized_carveout5_access0;
953
u32 mc_generalized_carveout5_access1;
954
u32 mc_generalized_carveout5_access2;
955
u32 mc_generalized_carveout5_access3;
956
u32 mc_generalized_carveout5_access4;
957
u32 mc_generalized_carveout5_force_internal_access0;
958
u32 mc_generalized_carveout5_force_internal_access1;
959
u32 mc_generalized_carveout5_force_internal_access2;
960
u32 mc_generalized_carveout5_force_internal_access3;
961
u32 mc_generalized_carveout5_force_internal_access4;
962
u32 mc_generalized_carveout5_cfg0;
963
964
/* Specifies enable for CA training */
965
u32 emc_ca_training_enable;
966
/* Set if bit 6 select is greater than bit 7 select; uses aremc.spec packet SWIZZLE_BIT6_GT_BIT7 */
967
u32 swizzle_rank_byte_encode;
968
/* Specifies enable and offset for patched boot rom write */
969
u32 boot_rom_patch_control;
970
/* Specifies data for patched boot rom write */
971
u32 boot_rom_patch_data;
972
973
/* Specifies the value for MC_MTS_CARVEOUT_BOM */
974
u32 mc_mts_carveout_bom;
975
/* Specifies the value for MC_MTS_CARVEOUT_ADR_HI */
976
u32 mc_mts_carveout_adr_hi;
977
/* Specifies the value for MC_MTS_CARVEOUT_SIZE_MB */
978
u32 mc_mts_carveout_size_mb;
979
/* Specifies the value for MC_MTS_CARVEOUT_REG_CTRL */
980
u32 mc_mts_carveout_reg_ctrl;
981
982
/* Specifies the clients that are allowed to access untranslated memory */
983
u32 mc_untranslated_region_check;
984
985
/* Just a place holder for special usage when there is no BCT for certain registers */
986
u32 bct_na;
987
} sdram_params_t210b01_t;
988
989
#endif
990
991