Path: blob/master/modules/hekate_libsys_minerva/mtc_table.h
1476 views
/*1* Minerva Training Cell2* DRAM Training for Tegra X1 SoC. Supports DDR2/3 and LPDDR3/4.3*4* Copyright (c) 2018 CTCaer <[email protected]>5*6* This program is free software; you can redistribute it and/or modify it7* 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 WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for13* more details.14*15* You should have received a copy of the GNU General Public License16* along with this program. If not, see <http://www.gnu.org/licenses/>.17*/1819#ifndef _MTC_TABLE_H_20#define _MTC_TABLE_H_2122#include "types.h"2324typedef struct25{26u32 pll_osc_in;27u32 pll_out;28u32 pll_feedback_div;29u32 pll_input_div;30u32 pll_post_div;31} pllm_clk_config_t;3233typedef struct34{35u32 emc_rc;36u32 emc_rfc;37u32 emc_rfcpb;38u32 emc_refctrl2;39u32 emc_rfc_slr;40u32 emc_ras;41u32 emc_rp;42u32 emc_r2w;43u32 emc_w2r;44u32 emc_r2p;45u32 emc_w2p;46u32 emc_r2r;47u32 emc_tppd;48u32 emc_ccdmw;49u32 emc_rd_rcd;50u32 emc_wr_rcd;51u32 emc_rrd;52u32 emc_rext;53u32 emc_wext;54u32 emc_wdv_chk;55u32 emc_wdv;56u32 emc_wsv;57u32 emc_wev;58u32 emc_wdv_mask;59u32 emc_ws_duration;60u32 emc_we_duration;61u32 emc_quse;62u32 emc_quse_width;63u32 emc_ibdly;64u32 emc_obdly;65u32 emc_einput;66u32 emc_mrw6;67u32 emc_einput_duration;68u32 emc_puterm_extra;69u32 emc_puterm_width;70u32 emc_qrst;71u32 emc_qsafe;72u32 emc_rdv;73u32 emc_rdv_mask;74u32 emc_rdv_early;75u32 emc_rdv_early_mask;76u32 emc_refresh;77u32 emc_burst_refresh_num;78u32 emc_pre_refresh_req_cnt;79u32 emc_pdex2wr;80u32 emc_pdex2rd;81u32 emc_pchg2pden;82u32 emc_act2pden;83u32 emc_ar2pden;84u32 emc_rw2pden;85u32 emc_cke2pden;86u32 emc_pdex2cke;87u32 emc_pdex2mrr;88u32 emc_txsr;89u32 emc_txsrdll;90u32 emc_tcke;91u32 emc_tckesr;92u32 emc_tpd;93u32 emc_tfaw;94u32 emc_trpab;95u32 emc_tclkstable;96u32 emc_tclkstop;97u32 emc_mrw7;98u32 emc_trefbw;99u32 emc_odt_write;100u32 emc_fbio_cfg5;101u32 emc_fbio_cfg7;102u32 emc_cfg_dig_dll;103u32 emc_cfg_dig_dll_period;104u32 emc_pmacro_ib_rxrt;105u32 emc_cfg_pipe_1;106u32 emc_cfg_pipe_2;107u32 emc_pmacro_quse_ddll_rank0_4;108u32 emc_pmacro_quse_ddll_rank0_5;109u32 emc_pmacro_quse_ddll_rank1_4;110u32 emc_pmacro_quse_ddll_rank1_5;111u32 emc_mrw8;112u32 emc_pmacro_ob_ddll_long_dq_rank1_4;113u32 emc_pmacro_ob_ddll_long_dq_rank1_5;114u32 emc_pmacro_ob_ddll_long_dqs_rank0_0;115u32 emc_pmacro_ob_ddll_long_dqs_rank0_1;116u32 emc_pmacro_ob_ddll_long_dqs_rank0_2;117u32 emc_pmacro_ob_ddll_long_dqs_rank0_3;118u32 emc_pmacro_ob_ddll_long_dqs_rank0_4;119u32 emc_pmacro_ob_ddll_long_dqs_rank0_5;120u32 emc_pmacro_ob_ddll_long_dqs_rank1_0;121u32 emc_pmacro_ob_ddll_long_dqs_rank1_1;122u32 emc_pmacro_ob_ddll_long_dqs_rank1_2;123u32 emc_pmacro_ob_ddll_long_dqs_rank1_3;124u32 emc_pmacro_ob_ddll_long_dqs_rank1_4;125u32 emc_pmacro_ob_ddll_long_dqs_rank1_5;126u32 emc_pmacro_ddll_long_cmd_0;127u32 emc_pmacro_ddll_long_cmd_1;128u32 emc_pmacro_ddll_long_cmd_2;129u32 emc_pmacro_ddll_long_cmd_3;130u32 emc_pmacro_ddll_long_cmd_4;131u32 emc_pmacro_ddll_short_cmd_0;132u32 emc_pmacro_ddll_short_cmd_1;133u32 emc_pmacro_ddll_short_cmd_2;134u32 emc_pmacro_ob_ddll_short_dq_rank0_byte0_3;135u32 emc_pmacro_ob_ddll_short_dq_rank0_byte1_3;136u32 emc_pmacro_ob_ddll_short_dq_rank0_byte2_3;137u32 emc_pmacro_ob_ddll_short_dq_rank0_byte3_3;138u32 emc_pmacro_ob_ddll_short_dq_rank0_byte4_3;139u32 emc_pmacro_ob_ddll_short_dq_rank0_byte5_3;140u32 emc_pmacro_ob_ddll_short_dq_rank0_byte6_3;141u32 emc_pmacro_ob_ddll_short_dq_rank0_byte7_3;142u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd0_3;143u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd1_3;144u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd2_3;145u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd3_3;146u32 emc_pmacro_ob_ddll_short_dq_rank1_byte0_3;147u32 emc_pmacro_ob_ddll_short_dq_rank1_byte1_3;148u32 emc_pmacro_ob_ddll_short_dq_rank1_byte2_3;149u32 emc_pmacro_ob_ddll_short_dq_rank1_byte3_3;150u32 emc_pmacro_ob_ddll_short_dq_rank1_byte4_3;151u32 emc_pmacro_ob_ddll_short_dq_rank1_byte5_3;152u32 emc_pmacro_ob_ddll_short_dq_rank1_byte6_3;153u32 emc_pmacro_ob_ddll_short_dq_rank1_byte7_3;154u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd0_0;155u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd0_1;156u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd0_2;157u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd0_3;158u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd1_0;159u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd1_1;160u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd1_2;161u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd1_3;162u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd2_0;163u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd2_1;164u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd2_2;165u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd2_3;166u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd3_0;167u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd3_1;168u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd3_2;169u32 emc_pmacro_ob_ddll_short_dq_rank1_cmd3_3;170u32 emc_txdsrvttgen;171u32 emc_fdpd_ctrl_dq;172u32 emc_fdpd_ctrl_cmd;173u32 emc_fbio_spare;174u32 emc_zcal_interval;175u32 emc_zcal_wait_cnt;176u32 emc_mrs_wait_cnt;177u32 emc_mrs_wait_cnt2;178u32 emc_auto_cal_channel;179u32 emc_dll_cfg_0;180u32 emc_dll_cfg_1;181u32 emc_pmacro_autocal_cfg_common;182u32 emc_pmacro_zctrl;183u32 emc_cfg;184u32 emc_cfg_pipe;185u32 emc_dyn_self_ref_control;186u32 emc_qpop;187u32 emc_dqs_brlshft_0;188u32 emc_dqs_brlshft_1;189u32 emc_cmd_brlshft_2;190u32 emc_cmd_brlshft_3;191u32 emc_pmacro_pad_cfg_ctrl;192u32 emc_pmacro_data_pad_rx_ctrl;193u32 emc_pmacro_cmd_pad_rx_ctrl;194u32 emc_pmacro_data_rx_term_mode;195u32 emc_pmacro_cmd_rx_term_mode;196u32 emc_pmacro_cmd_pad_tx_ctrl;197u32 emc_pmacro_data_pad_tx_ctrl;198u32 emc_pmacro_common_pad_tx_ctrl;199u32 emc_pmacro_vttgen_ctrl_0;200u32 emc_pmacro_vttgen_ctrl_1;201u32 emc_pmacro_vttgen_ctrl_2;202u32 emc_pmacro_brick_ctrl_rfu1;203u32 emc_pmacro_cmd_brick_ctrl_fdpd;204u32 emc_pmacro_brick_ctrl_rfu2;205u32 emc_pmacro_data_brick_ctrl_fdpd;206u32 emc_pmacro_bg_bias_ctrl_0;207u32 emc_cfg_3;208u32 emc_pmacro_tx_pwrd_0;209u32 emc_pmacro_tx_pwrd_1;210u32 emc_pmacro_tx_pwrd_2;211u32 emc_pmacro_tx_pwrd_3;212u32 emc_pmacro_tx_pwrd_4;213u32 emc_pmacro_tx_pwrd_5;214u32 emc_config_sample_delay;215u32 emc_pmacro_tx_sel_clk_src_0;216u32 emc_pmacro_tx_sel_clk_src_1;217u32 emc_pmacro_tx_sel_clk_src_2;218u32 emc_pmacro_tx_sel_clk_src_3;219u32 emc_pmacro_tx_sel_clk_src_4;220u32 emc_pmacro_tx_sel_clk_src_5;221u32 emc_pmacro_ddll_bypass;222u32 emc_pmacro_ddll_pwrd_0;223u32 emc_pmacro_ddll_pwrd_1;224u32 emc_pmacro_ddll_pwrd_2;225u32 emc_pmacro_cmd_ctrl_0;226u32 emc_pmacro_cmd_ctrl_1;227u32 emc_pmacro_cmd_ctrl_2;228u32 emc_tr_timing_0;229u32 emc_tr_dvfs;230u32 emc_tr_ctrl_1;231u32 emc_tr_rdv;232u32 emc_tr_qpop;233u32 emc_tr_rdv_mask;234u32 emc_mrw14;235u32 emc_tr_qsafe;236u32 emc_tr_qrst;237u32 emc_training_ctrl;238u32 emc_training_settle;239u32 emc_training_vref_settle;240u32 emc_training_ca_fine_ctrl;241u32 emc_training_ca_ctrl_misc;242u32 emc_training_ca_ctrl_misc1;243u32 emc_training_ca_vref_ctrl;244u32 emc_training_quse_cors_ctrl;245u32 emc_training_quse_fine_ctrl;246u32 emc_training_quse_ctrl_misc;247u32 emc_training_quse_vref_ctrl;248u32 emc_training_read_fine_ctrl;249u32 emc_training_read_ctrl_misc;250u32 emc_training_read_vref_ctrl;251u32 emc_training_write_fine_ctrl;252u32 emc_training_write_ctrl_misc;253u32 emc_training_write_vref_ctrl;254u32 emc_training_mpc;255u32 emc_mrw15;256} burst_regs_t;257258typedef struct259{260u32 burst_regs[221];261u32 burst_reg_per_ch[8];262u32 shadow_regs_ca_train[221];263u32 shadow_regs_quse_train[221];264u32 shadow_regs_rdwr_train[221];265} burst_regs_table_t;266267typedef struct268{269u32 ptfv_dqsosc_movavg_c0d0u0;270u32 ptfv_dqsosc_movavg_c0d0u1;271u32 ptfv_dqsosc_movavg_c0d1u0;272u32 ptfv_dqsosc_movavg_c0d1u1;273u32 ptfv_dqsosc_movavg_c1d0u0;274u32 ptfv_dqsosc_movavg_c1d0u1;275u32 ptfv_dqsosc_movavg_c1d1u0;276u32 ptfv_dqsosc_movavg_c1d1u1;277u32 ptfv_write_samples;278u32 ptfv_dvfs_samples;279u32 ptfv_movavg_weight;280u32 ptfv_config_ctrl;281} ptfv_list_table_t;282283typedef struct284{285u32 emc0_mrw10;286u32 emc1_mrw10;287u32 emc0_mrw11;288u32 emc1_mrw11;289u32 emc0_mrw12;290u32 emc1_mrw12;291u32 emc0_mrw13;292u32 emc1_mrw13;293} burst_reg_per_ch_t;294295typedef struct296{297u32 emc_pmacro_ib_ddll_long_dqs_rank0_0;298u32 emc_pmacro_ib_ddll_long_dqs_rank0_1;299u32 emc_pmacro_ib_ddll_long_dqs_rank0_2;300u32 emc_pmacro_ib_ddll_long_dqs_rank0_3;301u32 emc_pmacro_ib_ddll_long_dqs_rank1_0;302u32 emc_pmacro_ib_ddll_long_dqs_rank1_1;303u32 emc_pmacro_ib_ddll_long_dqs_rank1_2;304u32 emc_pmacro_ib_ddll_long_dqs_rank1_3;305u32 emc_pmacro_ib_ddll_short_dq_rank0_byte0_0;306u32 emc_pmacro_ib_ddll_short_dq_rank0_byte0_1;307u32 emc_pmacro_ib_ddll_short_dq_rank0_byte0_2;308u32 emc_pmacro_ib_ddll_short_dq_rank0_byte1_0;309u32 emc_pmacro_ib_ddll_short_dq_rank0_byte1_1;310u32 emc_pmacro_ib_ddll_short_dq_rank0_byte1_2;311u32 emc_pmacro_ib_ddll_short_dq_rank0_byte2_0;312u32 emc_pmacro_ib_ddll_short_dq_rank0_byte2_1;313u32 emc_pmacro_ib_ddll_short_dq_rank0_byte2_2;314u32 emc_pmacro_ib_ddll_short_dq_rank0_byte3_0;315u32 emc_pmacro_ib_ddll_short_dq_rank0_byte3_1;316u32 emc_pmacro_ib_ddll_short_dq_rank0_byte3_2;317u32 emc_pmacro_ib_ddll_short_dq_rank0_byte4_0;318u32 emc_pmacro_ib_ddll_short_dq_rank0_byte4_1;319u32 emc_pmacro_ib_ddll_short_dq_rank0_byte4_2;320u32 emc_pmacro_ib_ddll_short_dq_rank0_byte5_0;321u32 emc_pmacro_ib_ddll_short_dq_rank0_byte5_1;322u32 emc_pmacro_ib_ddll_short_dq_rank0_byte5_2;323u32 emc_pmacro_ib_ddll_short_dq_rank0_byte6_0;324u32 emc_pmacro_ib_ddll_short_dq_rank0_byte6_1;325u32 emc_pmacro_ib_ddll_short_dq_rank0_byte6_2;326u32 emc_pmacro_ib_ddll_short_dq_rank0_byte7_0;327u32 emc_pmacro_ib_ddll_short_dq_rank0_byte7_1;328u32 emc_pmacro_ib_ddll_short_dq_rank0_byte7_2;329u32 emc_pmacro_ib_ddll_short_dq_rank1_byte0_0;330u32 emc_pmacro_ib_ddll_short_dq_rank1_byte0_1;331u32 emc_pmacro_ib_ddll_short_dq_rank1_byte0_2;332u32 emc_pmacro_ib_ddll_short_dq_rank1_byte1_0;333u32 emc_pmacro_ib_ddll_short_dq_rank1_byte1_1;334u32 emc_pmacro_ib_ddll_short_dq_rank1_byte1_2;335u32 emc_pmacro_ib_ddll_short_dq_rank1_byte2_0;336u32 emc_pmacro_ib_ddll_short_dq_rank1_byte2_1;337u32 emc_pmacro_ib_ddll_short_dq_rank1_byte2_2;338u32 emc_pmacro_ib_ddll_short_dq_rank1_byte3_0;339u32 emc_pmacro_ib_ddll_short_dq_rank1_byte3_1;340u32 emc_pmacro_ib_ddll_short_dq_rank1_byte3_2;341u32 emc_pmacro_ib_ddll_short_dq_rank1_byte4_0;342u32 emc_pmacro_ib_ddll_short_dq_rank1_byte4_1;343u32 emc_pmacro_ib_ddll_short_dq_rank1_byte4_2;344u32 emc_pmacro_ib_ddll_short_dq_rank1_byte5_0;345u32 emc_pmacro_ib_ddll_short_dq_rank1_byte5_1;346u32 emc_pmacro_ib_ddll_short_dq_rank1_byte5_2;347u32 emc_pmacro_ib_ddll_short_dq_rank1_byte6_0;348u32 emc_pmacro_ib_ddll_short_dq_rank1_byte6_1;349u32 emc_pmacro_ib_ddll_short_dq_rank1_byte6_2;350u32 emc_pmacro_ib_ddll_short_dq_rank1_byte7_0;351u32 emc_pmacro_ib_ddll_short_dq_rank1_byte7_1;352u32 emc_pmacro_ib_ddll_short_dq_rank1_byte7_2;353u32 emc_pmacro_ib_vref_dqs_0;354u32 emc_pmacro_ib_vref_dqs_1;355u32 emc_pmacro_ib_vref_dq_0;356u32 emc_pmacro_ib_vref_dq_1;357u32 emc_pmacro_ob_ddll_long_dq_rank0_0;358u32 emc_pmacro_ob_ddll_long_dq_rank0_1;359u32 emc_pmacro_ob_ddll_long_dq_rank0_2;360u32 emc_pmacro_ob_ddll_long_dq_rank0_3;361u32 emc_pmacro_ob_ddll_long_dq_rank0_4;362u32 emc_pmacro_ob_ddll_long_dq_rank0_5;363u32 emc_pmacro_ob_ddll_long_dq_rank1_0;364u32 emc_pmacro_ob_ddll_long_dq_rank1_1;365u32 emc_pmacro_ob_ddll_long_dq_rank1_2;366u32 emc_pmacro_ob_ddll_long_dq_rank1_3;367u32 emc_pmacro_ob_ddll_short_dq_rank0_byte0_0;368u32 emc_pmacro_ob_ddll_short_dq_rank0_byte0_1;369u32 emc_pmacro_ob_ddll_short_dq_rank0_byte0_2;370u32 emc_pmacro_ob_ddll_short_dq_rank0_byte1_0;371u32 emc_pmacro_ob_ddll_short_dq_rank0_byte1_1;372u32 emc_pmacro_ob_ddll_short_dq_rank0_byte1_2;373u32 emc_pmacro_ob_ddll_short_dq_rank0_byte2_0;374u32 emc_pmacro_ob_ddll_short_dq_rank0_byte2_1;375u32 emc_pmacro_ob_ddll_short_dq_rank0_byte2_2;376u32 emc_pmacro_ob_ddll_short_dq_rank0_byte3_0;377u32 emc_pmacro_ob_ddll_short_dq_rank0_byte3_1;378u32 emc_pmacro_ob_ddll_short_dq_rank0_byte3_2;379u32 emc_pmacro_ob_ddll_short_dq_rank0_byte4_0;380u32 emc_pmacro_ob_ddll_short_dq_rank0_byte4_1;381u32 emc_pmacro_ob_ddll_short_dq_rank0_byte4_2;382u32 emc_pmacro_ob_ddll_short_dq_rank0_byte5_0;383u32 emc_pmacro_ob_ddll_short_dq_rank0_byte5_1;384u32 emc_pmacro_ob_ddll_short_dq_rank0_byte5_2;385u32 emc_pmacro_ob_ddll_short_dq_rank0_byte6_0;386u32 emc_pmacro_ob_ddll_short_dq_rank0_byte6_1;387u32 emc_pmacro_ob_ddll_short_dq_rank0_byte6_2;388u32 emc_pmacro_ob_ddll_short_dq_rank0_byte7_0;389u32 emc_pmacro_ob_ddll_short_dq_rank0_byte7_1;390u32 emc_pmacro_ob_ddll_short_dq_rank0_byte7_2;391u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd0_0;392u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd0_1;393u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd0_2;394u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd1_0;395u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd1_1;396u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd1_2;397u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd2_0;398u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd2_1;399u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd2_2;400u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd3_0;401u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd3_1;402u32 emc_pmacro_ob_ddll_short_dq_rank0_cmd3_2;403u32 emc_pmacro_ob_ddll_short_dq_rank1_byte0_0;404u32 emc_pmacro_ob_ddll_short_dq_rank1_byte0_1;405u32 emc_pmacro_ob_ddll_short_dq_rank1_byte0_2;406u32 emc_pmacro_ob_ddll_short_dq_rank1_byte1_0;407u32 emc_pmacro_ob_ddll_short_dq_rank1_byte1_1;408u32 emc_pmacro_ob_ddll_short_dq_rank1_byte1_2;409u32 emc_pmacro_ob_ddll_short_dq_rank1_byte2_0;410u32 emc_pmacro_ob_ddll_short_dq_rank1_byte2_1;411u32 emc_pmacro_ob_ddll_short_dq_rank1_byte2_2;412u32 emc_pmacro_ob_ddll_short_dq_rank1_byte3_0;413u32 emc_pmacro_ob_ddll_short_dq_rank1_byte3_1;414u32 emc_pmacro_ob_ddll_short_dq_rank1_byte3_2;415u32 emc_pmacro_ob_ddll_short_dq_rank1_byte4_0;416u32 emc_pmacro_ob_ddll_short_dq_rank1_byte4_1;417u32 emc_pmacro_ob_ddll_short_dq_rank1_byte4_2;418u32 emc_pmacro_ob_ddll_short_dq_rank1_byte5_0;419u32 emc_pmacro_ob_ddll_short_dq_rank1_byte5_1;420u32 emc_pmacro_ob_ddll_short_dq_rank1_byte5_2;421u32 emc_pmacro_ob_ddll_short_dq_rank1_byte6_0;422u32 emc_pmacro_ob_ddll_short_dq_rank1_byte6_1;423u32 emc_pmacro_ob_ddll_short_dq_rank1_byte6_2;424u32 emc_pmacro_ob_ddll_short_dq_rank1_byte7_0;425u32 emc_pmacro_ob_ddll_short_dq_rank1_byte7_1;426u32 emc_pmacro_ob_ddll_short_dq_rank1_byte7_2;427u32 emc_pmacro_quse_ddll_rank0_0;428u32 emc_pmacro_quse_ddll_rank0_1;429u32 emc_pmacro_quse_ddll_rank0_2;430u32 emc_pmacro_quse_ddll_rank0_3;431u32 emc_pmacro_quse_ddll_rank1_0;432u32 emc_pmacro_quse_ddll_rank1_1;433u32 emc_pmacro_quse_ddll_rank1_2;434u32 emc_pmacro_quse_ddll_rank1_3;435} trim_regs_t;436437typedef struct438{439u32 emc_cmd_brlshft_0;440u32 emc_cmd_brlshft_1;441u32 emc0_data_brlshft_0;442u32 emc1_data_brlshft_0;443u32 emc0_data_brlshft_1;444u32 emc1_data_brlshft_1;445u32 emc_quse_brlshft_0;446u32 emc_quse_brlshft_1;447u32 emc_quse_brlshft_2;448u32 emc_quse_brlshft_3;449} trim_perch_regs_t;450451typedef struct452{453u32 t_rp;454u32 t_fc_lpddr4;455u32 t_rfc;456u32 t_pdex;457u32 rl;458} dram_timings_t;459460typedef struct461{462u32 emc0_training_opt_dqs_ib_vref_rank0;463u32 emc1_training_opt_dqs_ib_vref_rank0;464u32 emc0_training_opt_dqs_ib_vref_rank1;465u32 emc1_training_opt_dqs_ib_vref_rank1;466} vref_perch_regs_t;467468typedef struct469{470u32 trim_regs[138];471u32 trim_perch_regs[10];472u32 vref_perch_regs[4];473} trim_regs_table_t;474475typedef struct476{477u32 rev;478char dvfs_ver[60];479u32 rate_khz;480u32 min_volt;481u32 gpu_min_volt;482char clock_src[32];483u32 clk_src_emc;484u32 needs_training;485u32 training_pattern;486u32 trained;487u32 periodic_training;488u32 trained_dram_clktree_c0d0u0;489u32 trained_dram_clktree_c0d0u1;490u32 trained_dram_clktree_c0d1u0;491u32 trained_dram_clktree_c0d1u1;492u32 trained_dram_clktree_c1d0u0;493u32 trained_dram_clktree_c1d0u1;494u32 trained_dram_clktree_c1d1u0;495u32 trained_dram_clktree_c1d1u1;496u32 current_dram_clktree_c0d0u0;497u32 current_dram_clktree_c0d0u1;498u32 current_dram_clktree_c0d1u0;499u32 current_dram_clktree_c0d1u1;500u32 current_dram_clktree_c1d0u0;501u32 current_dram_clktree_c1d0u1;502u32 current_dram_clktree_c1d1u0;503u32 current_dram_clktree_c1d1u1;504u32 run_clocks;505u32 tree_margin;506u32 num_burst;507u32 num_burst_per_ch;508u32 num_trim;509u32 num_trim_per_ch;510u32 num_mc_regs;511u32 num_up_down;512u32 vref_num;513u32 training_mod_num;514u32 dram_timing_num;515516ptfv_list_table_t ptfv_list;517518burst_regs_t burst_regs;519burst_reg_per_ch_t burst_reg_per_ch;520burst_regs_t shadow_regs_ca_train;521burst_regs_t shadow_regs_quse_train;522burst_regs_t shadow_regs_rdwr_train;523trim_regs_t trim_regs;524trim_perch_regs_t trim_perch_regs;525vref_perch_regs_t vref_perch_regs;526dram_timings_t dram_timings;527528u32 training_mod_regs[20];529u32 save_restore_mod_regs[12];530u32 burst_mc_regs[33];531u32 la_scale_regs[24];532533u32 min_mrs_wait;534u32 emc_mrw;535u32 emc_mrw2;536u32 emc_mrw3;537u32 emc_mrw4;538u32 emc_mrw9;539u32 emc_mrs;540u32 emc_emrs;541u32 emc_emrs2;542u32 emc_auto_cal_config;543u32 emc_auto_cal_config2;544u32 emc_auto_cal_config3;545u32 emc_auto_cal_config4;546u32 emc_auto_cal_config5;547u32 emc_auto_cal_config6;548u32 emc_auto_cal_config7;549u32 emc_auto_cal_config8;550u32 emc_cfg_2;551u32 emc_sel_dpd_ctrl;552u32 emc_fdpd_ctrl_cmd_no_ramp;553u32 dll_clk_src;554u32 clk_out_enb_x_0_clk_enb_emc_dll;555u32 latency;556} emc_table_t;557558#endif559560