mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-22 20:38:03 +00:00

DDR driver for NXP layerscape SoC(s): - lx2160aqds - lx2162aqds - lx2160ardb - Other Board with SoC(s) like ls1046a, ls1043a etc; -- These other boards are not verified yet. Signed-off-by: Rajesh Bhagat <rajesh.bhagat@nxp.com> Signed-off-by: York Sun <york.sun@nxp.com> Signed-off-by: Udit Agarwal <udit.agarwal@nxp.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com> Change-Id: Ic84a63cb30eba054f432d479862cd4d1097cbbaf
106 lines
2.4 KiB
C
106 lines
2.4 KiB
C
/*
|
|
* Copyright 2021 NXP
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*
|
|
*/
|
|
|
|
#ifndef _INPUT_H_
|
|
#define _INPUT_H_
|
|
|
|
enum dram_types {
|
|
DDR4,
|
|
DDR3,
|
|
LPDDR4,
|
|
LPDDR3,
|
|
LPDDR2,
|
|
DDR5,
|
|
};
|
|
|
|
enum dimm_types {
|
|
UDIMM,
|
|
SODIMM,
|
|
RDIMM,
|
|
LRDIMM,
|
|
NODIMM,
|
|
};
|
|
|
|
struct input_basic {
|
|
enum dram_types dram_type;
|
|
enum dimm_types dimm_type;
|
|
int lp4x_mode; /* 0x1 = lpddr4x mode, when dram_type is lpddr4
|
|
*/
|
|
/* not used for protocols other than lpddr4 */
|
|
int num_dbyte; /* number of dbytes physically instantiated */
|
|
int num_active_dbyte_dfi0; /* number of active dbytes to be
|
|
* controlled by dfi0
|
|
*/
|
|
int num_active_dbyte_dfi1; /* number of active dbytes to be
|
|
* controlled by dfi1. Not used for
|
|
* protocols other than lpddr3 and
|
|
* lpddr4
|
|
*/
|
|
int num_anib; /* number of anibs physically instantiated */
|
|
int num_rank_dfi0; /* number of ranks in dfi0 channel */
|
|
int num_rank_dfi1; /* number of ranks in dfi1 channel */
|
|
int dram_data_width; /* 4,8,16 or 32 depending on protocol and dram
|
|
* type
|
|
*/
|
|
int num_pstates;
|
|
int frequency; /* memclk frequency in mhz -- round up */
|
|
int pll_bypass; /* pll bypass enable */
|
|
int dfi_freq_ratio; /* selected dfi frequency ratio */
|
|
int dfi1exists; /* whether they phy config has dfi1 channel */
|
|
int train2d;
|
|
int hard_macro_ver;
|
|
int read_dbienable;
|
|
int dfi_mode; /* no longer used */
|
|
};
|
|
|
|
struct input_advanced {
|
|
int d4rx_preamble_length;
|
|
int d4tx_preamble_length;
|
|
int ext_cal_res_val; /* external pull-down resistor */
|
|
int is2ttiming;
|
|
int odtimpedance;
|
|
int tx_impedance;
|
|
int atx_impedance;
|
|
int mem_alert_en;
|
|
int mem_alert_puimp;
|
|
int mem_alert_vref_level;
|
|
int mem_alert_sync_bypass;
|
|
int dis_dyn_adr_tri;
|
|
int phy_mstr_train_interval;
|
|
int phy_mstr_max_req_to_ack;
|
|
int wdqsext;
|
|
int cal_interval;
|
|
int cal_once;
|
|
int dram_byte_swap;
|
|
int rx_en_back_off;
|
|
int train_sequence_ctrl;
|
|
int phy_gen2_umctl_opt;
|
|
int phy_gen2_umctl_f0rc5x;
|
|
int tx_slew_rise_dq;
|
|
int tx_slew_fall_dq;
|
|
int tx_slew_rise_ac;
|
|
int tx_slew_fall_ac;
|
|
int enable_high_clk_skew_fix;
|
|
int disable_unused_addr_lns;
|
|
int phy_init_sequence_num;
|
|
int cs_mode; /* rdimm */
|
|
int cast_cs_to_cid; /* rdimm */
|
|
};
|
|
|
|
struct input {
|
|
struct input_basic basic;
|
|
struct input_advanced adv;
|
|
unsigned int mr[7];
|
|
unsigned int cs_d0;
|
|
unsigned int cs_d1;
|
|
unsigned int mirror;
|
|
unsigned int odt[4];
|
|
unsigned int rcw[16];
|
|
unsigned int rcw3x;
|
|
unsigned int vref;
|
|
};
|
|
|
|
#endif
|