Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
CTCaer
GitHub Repository: CTCaer/hekate
Path: blob/master/bdk/mem/mtc_table.h
1476 views
1
/*
2
* Minerva Training Cell
3
* DRAM Training for Tegra X1 SoC. Supports DDR2/3 and LPDDR3/4.
4
*
5
* Copyright (c) 2018 CTCaer <[email protected]>
6
*
7
* This program is free software; you can redistribute it and/or modify it
8
* under the terms and conditions of the GNU General Public License,
9
* version 2, as published by the Free Software Foundation.
10
*
11
* This program is distributed in the hope it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14
* more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#ifndef _MTC_TABLE_H_
21
#define _MTC_TABLE_H_
22
23
#include <utils/types.h>
24
25
typedef struct
26
{
27
s32 pll_osc_in;
28
s32 pll_out;
29
u32 pll_feedback_div;
30
u32 pll_input_div;
31
u32 pll_post_div;
32
} pllm_clk_config_t;
33
34
typedef struct
35
{
36
u32 emc_rc_idx;
37
u32 emc_rfc_idx;
38
u32 emc_rfcpb_idx;
39
u32 emc_refctrl2_idx;
40
u32 emc_rfc_slr_idx;
41
u32 emc_ras_idx;
42
u32 emc_rp_idx;
43
u32 emc_r2w_idx;
44
u32 emc_w2r_idx;
45
u32 emc_r2p_idx;
46
u32 emc_w2p_idx;
47
u32 emc_r2r_idx;
48
u32 emc_tppd_idx;
49
u32 emc_ccdmw_idx;
50
u32 emc_rd_rcd_idx;
51
u32 emc_wr_rcd_idx;
52
u32 emc_rrd_idx;
53
u32 emc_rext_idx;
54
u32 emc_wext_idx;
55
u32 emc_wdv_chk_idx;
56
u32 emc_wdv_idx;
57
u32 emc_wsv_idx;
58
u32 emc_wev_idx;
59
u32 emc_wdv_mask_idx;
60
u32 emc_ws_duration_idx;
61
u32 emc_we_duration_idx;
62
u32 emc_quse_idx;
63
u32 emc_quse_width_idx;
64
u32 emc_ibdly_idx;
65
u32 emc_obdly_idx;
66
u32 emc_einput_idx;
67
u32 emc_mrw6_idx;
68
u32 emc_einput_duration_idx;
69
u32 emc_puterm_extra_idx;
70
u32 emc_puterm_width_idx;
71
u32 emc_qrst_idx;
72
u32 emc_qsafe_idx;
73
u32 emc_rdv_idx;
74
u32 emc_rdv_mask_idx;
75
u32 emc_rdv_early_idx;
76
u32 emc_rdv_early_mask_idx;
77
u32 emc_refresh_idx;
78
u32 emc_burst_refresh_num_idx;
79
u32 emc_pre_refresh_req_cnt_idx;
80
u32 emc_pdex2wr_idx;
81
u32 emc_pdex2rd_idx;
82
u32 emc_pchg2pden_idx;
83
u32 emc_act2pden_idx;
84
u32 emc_ar2pden_idx;
85
u32 emc_rw2pden_idx;
86
u32 emc_cke2pden_idx;
87
u32 emc_pdex2cke_idx;
88
u32 emc_pdex2mrr_idx;
89
u32 emc_txsr_idx;
90
u32 emc_txsrdll_idx;
91
u32 emc_tcke_idx;
92
u32 emc_tckesr_idx;
93
u32 emc_tpd_idx;
94
u32 emc_tfaw_idx;
95
u32 emc_trpab_idx;
96
u32 emc_tclkstable_idx;
97
u32 emc_tclkstop_idx;
98
u32 emc_mrw7_idx;
99
u32 emc_trefbw_idx;
100
u32 emc_odt_write_idx;
101
u32 emc_fbio_cfg5_idx;
102
u32 emc_fbio_cfg7_idx;
103
u32 emc_cfg_dig_dll_idx;
104
u32 emc_cfg_dig_dll_period_idx;
105
u32 emc_pmacro_ib_rxrt_idx;
106
u32 emc_cfg_pipe_1_idx;
107
u32 emc_cfg_pipe_2_idx;
108
u32 emc_pmacro_quse_ddll_rank0_4_idx;
109
u32 emc_pmacro_quse_ddll_rank0_5_idx;
110
u32 emc_pmacro_quse_ddll_rank1_4_idx;
111
u32 emc_pmacro_quse_ddll_rank1_5_idx;
112
u32 emc_mrw8_idx;
113
u32 emc_pmacro_ob_ddll_long_dq_rank1_4_idx;
114
u32 emc_pmacro_ob_ddll_long_dq_rank1_5_idx;
115
u32 emc_pmacro_ob_ddll_long_dqs_rank0_0_idx;
116
u32 emc_pmacro_ob_ddll_long_dqs_rank0_1_idx;
117
u32 emc_pmacro_ob_ddll_long_dqs_rank0_2_idx;
118
u32 emc_pmacro_ob_ddll_long_dqs_rank0_3_idx;
119
u32 emc_pmacro_ob_ddll_long_dqs_rank0_4_idx;
120
u32 emc_pmacro_ob_ddll_long_dqs_rank0_5_idx;
121
u32 emc_pmacro_ob_ddll_long_dqs_rank1_0_idx;
122
u32 emc_pmacro_ob_ddll_long_dqs_rank1_1_idx;
123
u32 emc_pmacro_ob_ddll_long_dqs_rank1_2_idx;
124
u32 emc_pmacro_ob_ddll_long_dqs_rank1_3_idx;
125
u32 emc_pmacro_ob_ddll_long_dqs_rank1_4_idx;
126
u32 emc_pmacro_ob_ddll_long_dqs_rank1_5_idx;
127
u32 emc_pmacro_ddll_long_cmd_0_idx;
128
u32 emc_pmacro_ddll_long_cmd_1_idx;
129
u32 emc_pmacro_ddll_long_cmd_2_idx;
130
u32 emc_pmacro_ddll_long_cmd_3_idx;
131
u32 emc_pmacro_ddll_long_cmd_4_idx;
132
u32 emc_pmacro_ddll_short_cmd_0_idx;
133
u32 emc_pmacro_ddll_short_cmd_1_idx;
134
u32 emc_pmacro_ddll_short_cmd_2_idx;
135
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte0_3_idx;
136
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte1_3_idx;
137
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte2_3_idx;
138
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte3_3_idx;
139
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte4_3_idx;
140
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte5_3_idx;
141
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte6_3_idx;
142
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte7_3_idx;
143
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd0_3_idx;
144
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd1_3_idx;
145
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd2_3_idx;
146
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd3_3_idx;
147
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte0_3_idx;
148
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte1_3_idx;
149
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte2_3_idx;
150
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte3_3_idx;
151
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte4_3_idx;
152
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte5_3_idx;
153
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte6_3_idx;
154
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte7_3_idx;
155
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd0_0_idx;
156
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd0_1_idx;
157
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd0_2_idx;
158
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd0_3_idx;
159
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd1_0_idx;
160
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd1_1_idx;
161
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd1_2_idx;
162
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd1_3_idx;
163
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd2_0_idx;
164
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd2_1_idx;
165
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd2_2_idx;
166
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd2_3_idx;
167
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd3_0_idx;
168
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd3_1_idx;
169
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd3_2_idx;
170
u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd3_3_idx;
171
u32 emc_txdsrvttgen_idx;
172
u32 emc_fdpd_ctrl_dq_idx;
173
u32 emc_fdpd_ctrl_cmd_idx;
174
u32 emc_fbio_spare_idx;
175
u32 emc_zcal_interval_idx;
176
u32 emc_zcal_wait_cnt_idx;
177
u32 emc_mrs_wait_cnt_idx;
178
u32 emc_mrs_wait_cnt2_idx;
179
u32 emc_auto_cal_channel_idx;
180
u32 emc_dll_cfg_0_idx;
181
u32 emc_dll_cfg_1_idx;
182
u32 emc_pmacro_autocal_cfg_common_idx;
183
u32 emc_pmacro_zctrl_idx;
184
u32 emc_cfg_idx;
185
u32 emc_cfg_pipe_idx;
186
u32 emc_dyn_self_ref_control_idx;
187
u32 emc_qpop_idx;
188
u32 emc_dqs_brlshft_0_idx;
189
u32 emc_dqs_brlshft_1_idx;
190
u32 emc_cmd_brlshft_2_idx;
191
u32 emc_cmd_brlshft_3_idx;
192
u32 emc_pmacro_pad_cfg_ctrl_idx;
193
u32 emc_pmacro_data_pad_rx_ctrl_idx;
194
u32 emc_pmacro_cmd_pad_rx_ctrl_idx;
195
u32 emc_pmacro_data_rx_term_mode_idx;
196
u32 emc_pmacro_cmd_rx_term_mode_idx;
197
u32 emc_pmacro_cmd_pad_tx_ctrl_idx;
198
u32 emc_pmacro_data_pad_tx_ctrl_idx;
199
u32 emc_pmacro_common_pad_tx_ctrl_idx;
200
u32 emc_pmacro_vttgen_ctrl_0_idx;
201
u32 emc_pmacro_vttgen_ctrl_1_idx;
202
u32 emc_pmacro_vttgen_ctrl_2_idx;
203
u32 emc_pmacro_brick_ctrl_rfu1_idx;
204
u32 emc_pmacro_cmd_brick_ctrl_fdpd_idx;
205
u32 emc_pmacro_brick_ctrl_rfu2_idx;
206
u32 emc_pmacro_data_brick_ctrl_fdpd_idx;
207
u32 emc_pmacro_bg_bias_ctrl_0_idx;
208
u32 emc_cfg_3_idx;
209
u32 emc_pmacro_tx_pwrd_0_idx;
210
u32 emc_pmacro_tx_pwrd_1_idx;
211
u32 emc_pmacro_tx_pwrd_2_idx;
212
u32 emc_pmacro_tx_pwrd_3_idx;
213
u32 emc_pmacro_tx_pwrd_4_idx;
214
u32 emc_pmacro_tx_pwrd_5_idx;
215
u32 emc_config_sample_delay_idx;
216
u32 emc_pmacro_tx_sel_clk_src_0_idx;
217
u32 emc_pmacro_tx_sel_clk_src_1_idx;
218
u32 emc_pmacro_tx_sel_clk_src_2_idx;
219
u32 emc_pmacro_tx_sel_clk_src_3_idx;
220
u32 emc_pmacro_tx_sel_clk_src_4_idx;
221
u32 emc_pmacro_tx_sel_clk_src_5_idx;
222
u32 emc_pmacro_ddll_bypass_idx;
223
u32 emc_pmacro_ddll_pwrd_0_idx;
224
u32 emc_pmacro_ddll_pwrd_1_idx;
225
u32 emc_pmacro_ddll_pwrd_2_idx;
226
u32 emc_pmacro_cmd_ctrl_0_idx;
227
u32 emc_pmacro_cmd_ctrl_1_idx;
228
u32 emc_pmacro_cmd_ctrl_2_idx;
229
u32 emc_tr_timing_0_idx;
230
u32 emc_tr_dvfs_idx;
231
u32 emc_tr_ctrl_1_idx;
232
u32 emc_tr_rdv_idx;
233
u32 emc_tr_qpop_idx;
234
u32 emc_tr_rdv_mask_idx;
235
u32 emc_mrw14_idx;
236
u32 emc_tr_qsafe_idx;
237
u32 emc_tr_qrst_idx;
238
u32 emc_training_ctrl_idx;
239
u32 emc_training_settle_idx;
240
u32 emc_training_vref_settle_idx;
241
u32 emc_training_ca_fine_ctrl_idx;
242
u32 emc_training_ca_ctrl_misc_idx;
243
u32 emc_training_ca_ctrl_misc1_idx;
244
u32 emc_training_ca_vref_ctrl_idx;
245
u32 emc_training_quse_cors_ctrl_idx;
246
u32 emc_training_quse_fine_ctrl_idx;
247
u32 emc_training_quse_ctrl_misc_idx;
248
u32 emc_training_quse_vref_ctrl_idx;
249
u32 emc_training_read_fine_ctrl_idx;
250
u32 emc_training_read_ctrl_misc_idx;
251
u32 emc_training_read_vref_ctrl_idx;
252
u32 emc_training_write_fine_ctrl_idx;
253
u32 emc_training_write_ctrl_misc_idx;
254
u32 emc_training_write_vref_ctrl_idx;
255
u32 emc_training_mpc_idx;
256
u32 emc_mrw15_idx;
257
} burst_regs_t;
258
259
260
typedef struct
261
{
262
u32 burst_regs[221];
263
u32 burst_reg_per_ch[8];
264
u32 shadow_regs_ca_train[221];
265
u32 shadow_regs_quse_train[221];
266
u32 shadow_regs_rdwr_train[221];
267
} burst_regs_table_t;
268
269
typedef struct
270
{
271
u32 ptfv_dqsosc_movavg_c0d0u0_idx;
272
u32 ptfv_dqsosc_movavg_c0d0u1_idx;
273
u32 ptfv_dqsosc_movavg_c0d1u0_idx;
274
u32 ptfv_dqsosc_movavg_c0d1u1_idx;
275
u32 ptfv_dqsosc_movavg_c1d0u0_idx;
276
u32 ptfv_dqsosc_movavg_c1d0u1_idx;
277
u32 ptfv_dqsosc_movavg_c1d1u0_idx;
278
u32 ptfv_dqsosc_movavg_c1d1u1_idx;
279
u32 ptfv_write_samples_idx;
280
u32 ptfv_dvfs_samples_idx;
281
u32 ptfv_movavg_weight_idx;
282
u32 ptfv_config_ctrl_idx;
283
} ptfv_list_table_t;
284
285
typedef struct
286
{
287
u32 emc0_mrw10_idx;
288
u32 emc1_mrw10_idx;
289
u32 emc0_mrw11_idx;
290
u32 emc1_mrw11_idx;
291
u32 emc0_mrw12_idx;
292
u32 emc1_mrw12_idx;
293
u32 emc0_mrw13_idx;
294
u32 emc1_mrw13_idx;
295
} burst_reg_per_ch_t;
296
297
typedef struct
298
{
299
u32 emc_pmacro_ib_ddll_long_dqs_rank0_0_idx;
300
u32 emc_pmacro_ib_ddll_long_dqs_rank0_1_idx;
301
u32 emc_pmacro_ib_ddll_long_dqs_rank0_2_idx;
302
u32 emc_pmacro_ib_ddll_long_dqs_rank0_3_idx;
303
u32 emc_pmacro_ib_ddll_long_dqs_rank1_0_idx;
304
u32 emc_pmacro_ib_ddll_long_dqs_rank1_1_idx;
305
u32 emc_pmacro_ib_ddll_long_dqs_rank1_2_idx;
306
u32 emc_pmacro_ib_ddll_long_dqs_rank1_3_idx;
307
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte0_0_idx;
308
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte0_1_idx;
309
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte0_2_idx;
310
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte1_0_idx;
311
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte1_1_idx;
312
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte1_2_idx;
313
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte2_0_idx;
314
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte2_1_idx;
315
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte2_2_idx;
316
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte3_0_idx;
317
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte3_1_idx;
318
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte3_2_idx;
319
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte4_0_idx;
320
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte4_1_idx;
321
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte4_2_idx;
322
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte5_0_idx;
323
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte5_1_idx;
324
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte5_2_idx;
325
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte6_0_idx;
326
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte6_1_idx;
327
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte6_2_idx;
328
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte7_0_idx;
329
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte7_1_idx;
330
u32 emc_pmacro_ib_ddll_short_dq_rank0_byte7_2_idx;
331
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte0_0_idx;
332
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte0_1_idx;
333
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte0_2_idx;
334
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte1_0_idx;
335
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte1_1_idx;
336
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte1_2_idx;
337
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte2_0_idx;
338
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte2_1_idx;
339
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte2_2_idx;
340
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte3_0_idx;
341
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte3_1_idx;
342
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte3_2_idx;
343
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte4_0_idx;
344
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte4_1_idx;
345
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte4_2_idx;
346
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte5_0_idx;
347
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte5_1_idx;
348
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte5_2_idx;
349
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte6_0_idx;
350
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte6_1_idx;
351
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte6_2_idx;
352
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte7_0_idx;
353
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte7_1_idx;
354
u32 emc_pmacro_ib_ddll_short_dq_rank1_byte7_2_idx;
355
u32 emc_pmacro_ib_vref_dqs_0_idx;
356
u32 emc_pmacro_ib_vref_dqs_1_idx;
357
u32 emc_pmacro_ib_vref_dq_0_idx;
358
u32 emc_pmacro_ib_vref_dq_1_idx;
359
u32 emc_pmacro_ob_ddll_long_dq_rank0_0_idx;
360
u32 emc_pmacro_ob_ddll_long_dq_rank0_1_idx;
361
u32 emc_pmacro_ob_ddll_long_dq_rank0_2_idx;
362
u32 emc_pmacro_ob_ddll_long_dq_rank0_3_idx;
363
u32 emc_pmacro_ob_ddll_long_dq_rank0_4_idx;
364
u32 emc_pmacro_ob_ddll_long_dq_rank0_5_idx;
365
u32 emc_pmacro_ob_ddll_long_dq_rank1_0_idx;
366
u32 emc_pmacro_ob_ddll_long_dq_rank1_1_idx;
367
u32 emc_pmacro_ob_ddll_long_dq_rank1_2_idx;
368
u32 emc_pmacro_ob_ddll_long_dq_rank1_3_idx;
369
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte0_0_idx;
370
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte0_1_idx;
371
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte0_2_idx;
372
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte1_0_idx;
373
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte1_1_idx;
374
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte1_2_idx;
375
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte2_0_idx;
376
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte2_1_idx;
377
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte2_2_idx;
378
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte3_0_idx;
379
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte3_1_idx;
380
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte3_2_idx;
381
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte4_0_idx;
382
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte4_1_idx;
383
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte4_2_idx;
384
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte5_0_idx;
385
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte5_1_idx;
386
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte5_2_idx;
387
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte6_0_idx;
388
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte6_1_idx;
389
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte6_2_idx;
390
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte7_0_idx;
391
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte7_1_idx;
392
u32 emc_pmacro_ob_ddll_short_dq_rank0_byte7_2_idx;
393
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd0_0_idx;
394
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd0_1_idx;
395
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd0_2_idx;
396
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd1_0_idx;
397
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd1_1_idx;
398
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd1_2_idx;
399
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd2_0_idx;
400
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd2_1_idx;
401
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd2_2_idx;
402
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd3_0_idx;
403
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd3_1_idx;
404
u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd3_2_idx;
405
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte0_0_idx;
406
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte0_1_idx;
407
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte0_2_idx;
408
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte1_0_idx;
409
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte1_1_idx;
410
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte1_2_idx;
411
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte2_0_idx;
412
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte2_1_idx;
413
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte2_2_idx;
414
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte3_0_idx;
415
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte3_1_idx;
416
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte3_2_idx;
417
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte4_0_idx;
418
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte4_1_idx;
419
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte4_2_idx;
420
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte5_0_idx;
421
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte5_1_idx;
422
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte5_2_idx;
423
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte6_0_idx;
424
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte6_1_idx;
425
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte6_2_idx;
426
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte7_0_idx;
427
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte7_1_idx;
428
u32 emc_pmacro_ob_ddll_short_dq_rank1_byte7_2_idx;
429
u32 emc_pmacro_quse_ddll_rank0_0_idx;
430
u32 emc_pmacro_quse_ddll_rank0_1_idx;
431
u32 emc_pmacro_quse_ddll_rank0_2_idx;
432
u32 emc_pmacro_quse_ddll_rank0_3_idx;
433
u32 emc_pmacro_quse_ddll_rank1_0_idx;
434
u32 emc_pmacro_quse_ddll_rank1_1_idx;
435
u32 emc_pmacro_quse_ddll_rank1_2_idx;
436
u32 emc_pmacro_quse_ddll_rank1_3_idx;
437
} trim_regs_t;
438
439
typedef struct
440
{
441
u32 emc_cmd_brlshft_0_idx;
442
u32 emc_cmd_brlshft_1_idx;
443
u32 emc0_data_brlshft_0_idx;
444
u32 emc1_data_brlshft_0_idx;
445
u32 emc0_data_brlshft_1_idx;
446
u32 emc1_data_brlshft_1_idx;
447
u32 emc_quse_brlshft_0_idx;
448
u32 emc_quse_brlshft_1_idx;
449
u32 emc_quse_brlshft_2_idx;
450
u32 emc_quse_brlshft_3_idx;
451
} trim_perch_regs_t;
452
453
typedef struct
454
{
455
u32 t_rp;
456
u32 t_fc_lpddr4;
457
u32 t_rfc;
458
u32 t_pdex;
459
u32 rl;
460
} dram_timings_t;
461
462
typedef struct
463
{
464
u32 emc0_training_opt_dqs_ib_vref_rank0_idx;
465
u32 emc1_training_opt_dqs_ib_vref_rank0_idx;
466
u32 emc0_training_opt_dqs_ib_vref_rank1_idx;
467
u32 emc1_training_opt_dqs_ib_vref_rank1_idx;
468
} vref_perch_regs_t;
469
470
typedef struct
471
{
472
u32 trim_regs[138];
473
u32 trim_perch_regs[10];
474
u32 vref_perch_regs[4];
475
} trim_regs_table_t;
476
477
typedef struct
478
{
479
u32 rev;
480
char dvfs_ver[60];
481
u32 rate_khz;
482
u32 min_volt;
483
u32 gpu_min_volt;
484
char clock_src[28];
485
u32 opt_custom;
486
u32 clk_src_emc;
487
u32 needs_training;
488
u32 training_pattern;
489
u32 trained;
490
u32 periodic_training;
491
u32 trained_dram_clktree_c0d0u0;
492
u32 trained_dram_clktree_c0d0u1;
493
u32 trained_dram_clktree_c0d1u0;
494
u32 trained_dram_clktree_c0d1u1;
495
u32 trained_dram_clktree_c1d0u0;
496
u32 trained_dram_clktree_c1d0u1;
497
u32 trained_dram_clktree_c1d1u0;
498
u32 trained_dram_clktree_c1d1u1;
499
u32 current_dram_clktree_c0d0u0;
500
u32 current_dram_clktree_c0d0u1;
501
u32 current_dram_clktree_c0d1u0;
502
u32 current_dram_clktree_c0d1u1;
503
u32 current_dram_clktree_c1d0u0;
504
u32 current_dram_clktree_c1d0u1;
505
u32 current_dram_clktree_c1d1u0;
506
u32 current_dram_clktree_c1d1u1;
507
u32 run_clocks;
508
u32 tree_margin;
509
u32 num_burst;
510
u32 num_burst_per_ch;
511
u32 num_trim;
512
u32 num_trim_per_ch;
513
u32 num_mc_regs;
514
u32 num_up_down;
515
u32 vref_num;
516
u32 training_mod_num;
517
u32 dram_timing_num;
518
519
ptfv_list_table_t ptfv_list;
520
521
burst_regs_t burst_regs;
522
burst_reg_per_ch_t burst_reg_per_ch;
523
burst_regs_t shadow_regs_ca_train;
524
burst_regs_t shadow_regs_quse_train;
525
burst_regs_t shadow_regs_rdwr_train;
526
trim_regs_t trim_regs;
527
trim_perch_regs_t trim_perch_regs;
528
vref_perch_regs_t vref_perch_regs;
529
dram_timings_t dram_timings;
530
531
u32 training_mod_regs[20];
532
u32 save_restore_mod_regs[12];
533
u32 burst_mc_regs[33];
534
u32 la_scale_regs[24];
535
536
u32 min_mrs_wait;
537
u32 emc_mrw;
538
u32 emc_mrw2;
539
u32 emc_mrw3;
540
u32 emc_mrw4;
541
u32 emc_mrw9;
542
u32 emc_mrs;
543
u32 emc_emrs;
544
u32 emc_emrs2;
545
u32 emc_auto_cal_config;
546
u32 emc_auto_cal_config2;
547
u32 emc_auto_cal_config3;
548
u32 emc_auto_cal_config4;
549
u32 emc_auto_cal_config5;
550
u32 emc_auto_cal_config6;
551
u32 emc_auto_cal_config7;
552
u32 emc_auto_cal_config8;
553
u32 emc_cfg_2;
554
u32 emc_sel_dpd_ctrl;
555
u32 emc_fdpd_ctrl_cmd_no_ramp;
556
u32 dll_clk_src;
557
u32 clk_out_enb_x_0_clk_enb_emc_dll;
558
u32 latency;
559
} emc_table_t;
560
561
#endif
562