blob: 61e31aa6bd780977cc0d456ce84b3c1095506353 [file] [log] [blame]
/* ddr type defines */
#define CONFIG_DDR_TYPE_DDR3 0
#define CONFIG_DDR_TYPE_LPDDR2 1
#define CONFIG_DDR_TYPE_LPDDR3 2
#define CONFIG_LPDDR3_CA_TRAINING_USE_LANE0 0
#define CONFIG_LPDDR3_CA_TRAINING_USE_LANE1 1
#define CONFIG_LPDDR3_CA_TRAINING_USE_LANE2 2
#define CONFIG_LPDDR3_CA_TRAINING_USE_LANE3 3
/* ddr channel defines */
#define CONFIG_DDR0_RANK0_ONLY 1
#define CONFIG_DDR0_RANK01_SAME 2
#define CONFIG_DDR0_RANK01_DIFF 3
#define CONFIG_DDR01_SHARE_AC 4
#define CONFIG_DDR0_ONLY_16BIT 5
#define CONFIG_DDR0_RANK01_DIFF_16BIT 6
/* AUTO mode support:
RANK01 DIFF
RANK01 SAME */
#define CONFIG_DDR_CHL_AUTO 0xF
#define CFG_DDR_BASE_ADDR 0X0
#define CFG_DDR_START_OFFSET 0X01000000 //SKIP 16MB
/* ddr type identifier */
#define CONFIG_DDR_TIMMING_LPDDR2 0x02
#define CONFIG_DDR_TIMMING_LPDDR3 0x03
#define CONFIG_DDR_TIMMING_DDR3_7 0x07
#define CONFIG_DDR_TIMMING_DDR3_9 0x09
#define CONFIG_DDR_TIMMING_DDR3_11 0x0B
#define CONFIG_DDR_TIMMING_DDR3_12 0x0C
#define CONFIG_DDR_TIMMING_DDR3_13 0x0D
#define CONFIG_DDR_TIMMING_DDR3_14 0x0E
#define CONFIG_LPDDR2_TIMMING_DDR1066 0x21
#define CONFIG_LPDDR3_TIMMING_DDR1600 0x31
#define CONFIG_LPDDR3_TIMMING_DDR1866 0x32
#define CONFIG_DDR_FUNC_TEST (1<<0)
#define CONFIG_DDR_INIT_RETRY_TOTAL (5)
#define CONFIG_DDR_PCTL_RETRY_TOTAL (10)
#define DDR_USE_1_CHANNEL(chl_set) ((chl_set == CONFIG_DDR0_RANK01_SAME) || \
(chl_set == CONFIG_DDR0_ONLY_16BIT) || \
(chl_set == CONFIG_DDR0_RANK0_ONLY))
#define DDR_USE_2_CHANNEL(chl_set) ((chl_set == CONFIG_DDR01_SHARE_AC) || \
(chl_set == CONFIG_DDR0_RANK01_DIFF) || \
(chl_set == CONFIG_DDR0_RANK01_DIFF_16BIT))
/* lpddr3 ca training setting */
#ifndef CONFIG_LPDDR3_CA_TRAINING_CA0
#define CONFIG_LPDDR3_CA_TRAINING_CA0 CONFIG_LPDDR3_CA_TRAINING_USE_LANE2
#endif
#ifndef CONFIG_LPDDR3_CA_TRAINING_CA1
#define CONFIG_LPDDR3_CA_TRAINING_CA1 CONFIG_LPDDR3_CA_TRAINING_USE_LANE0
#endif
/* lpddr3 remap setting */
#define LPDDR_DIE_ROW_COL_R13_C9 0
#define LPDDR_DIE_ROW_COL_R14_C9 1
#define LPDDR_DIE_ROW_COL_R14_C10 2
#define LPDDR_DIE_ROW_COL_R13_C10 3
#define LPDDR_DIE_ROW_COL_R14_C11 4
#ifndef CONFIG_LPDDR_REMAP_SET
#define CONFIG_LPDDR_REMAP_SET LPDDR_DIE_ROW_COL_R13_C10
#endif
/* lpddr3 write leveling */
#ifndef CONFIG_LPDDR3_WRITE_LEVELING
#define CONFIG_LPDDR3_WRITE_LEVELING 1
#endif
/* how to add a new ddr function?
1. add CONFIG_DDR_FUNC_XXX in (config).h file
2. add define in this file.
2.1 add
#ifndef CONFIG_DDR_FUNC_XXX
#define CONFIG_DDR_FUNC_XXX 0
#endif
2.2 add
#define DDR_FUNC_XXX (CONFIG_FUNC_XXX<<X)
2.3 add DDR_FUNC_XXX |\ in DDR_FUNC
3. add same define and parser in bl2 code
*/
/* 2.1, 2,2, 2,3 example */
/*
#ifndef CONFIG_CMD_DDR_D2PLL
#define CONFIG_CMD_DDR_D2PLL 0
#endif
#define DDR_FUNC_D2PLL (CONFIG_CMD_DDR_D2PLL<<0)
#define DDR_FUNC (EXISTING_FUNCTIONS) |\
(DDR_FUNC_D2PLL)
*/
#ifndef CONFIG_CMD_DDR_D2PLL
#define CONFIG_CMD_DDR_D2PLL 0
#endif
#define DDR_FUNC_D2PLL (CONFIG_CMD_DDR_D2PLL<<0)
#ifndef CONFIG_DDR_FUNC_LPDDR3_CA
#define CONFIG_DDR_FUNC_LPDDR3_CA 0
#endif
#define DDR_FUNC_LPDDR3_CA (CONFIG_DDR_FUNC_LPDDR3_CA<<1)
#define DDR_FUNC (DDR_FUNC_D2PLL) |\
(DDR_FUNC_LPDDR3_CA)