blob: 28e6173315233161edbedc69b0d857e827f8e202 [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
/* board id */
#define CONFIG_BOARD_ID_MASK 0xFF
#define CONFIG_FW_INFO_MASK 0xFFFFFFFF
#define RESULT_OK 0x0
#define RESULT_FAIL 0xFF
#define RESULT_PLL_LOCK_FAIL 0x0F
#define RESULT_USB_BOOT_NEVER 0xF0
#define DDR_HDTCTRL_ENABLE_AMLOGIC_DDR4_PHY_VREF_CORRECTION 0x7
#define DDR_HDTCTRL_SHOW_DDR3_LPDDR3_TRAINING_MARGIN 0x9
#define DDR_HDTCTRL_SHOW_DDR3_LPDDR3_TRAINING_MARGIN_WRITE_DQ 0x00210005
#define DDR_HDTCTRL_SHOW_DDR3_LPDDR3_TRAINING_MARGIN_WRITE_DQM 0x00290005
#define DDR_HDTCTRL_SHOW_DDR3_LPDDR3_TRAINING_MARGIN_READ_DQ 0x003a0005
#define DDR_HDTCTRL_SHOW_DDR4_TRAINING_EYE_DATA_READ_START_1 0x00200004
#define DDR_HDTCTRL_SHOW_DDR4_TRAINING_EYE_DATA_READ_START_2 0x001e0004
#define DDR_HDTCTRL_SHOW_DDR4_TRAINING_EYE_DATA_READ_VREF 0x0014001f
#define DDR_HDTCTRL_SHOW_DDR4_TRAINING_EYE_DATA_READ_VREF_END 0x00610000
#define DDR_HDTCTRL_SHOW_DDR4_TRAINING_EYE_DATA_WRITE_START_1 0x001c0004
#define DDR_HDTCTRL_SHOW_DDR4_TRAINING_EYE_DATA_WRITE_START_2 0x00230004
#define DDR_HDTCTRL_SHOW_LPDDR4_TRAINING_TDQS2DQ 0x00dd0002
//#define DDR_HDTCTRL_SHOW_DDR4_TRAINING_EYE_DATA_WRITE_VREF 0x0014001f
//#define DDR_HDTCTRL_SHOW_DDR4_TRAINING_EYE_DATA_WRITE_VREF_END 0x00610000
#define DMC_PSTATE_MAX 4
#define CONFIG_CHIP_TYPE_DRAM 0x1F
#define CONFIG_CHIP_TYPE_PSRAM 0x2F
#define CONFIG_DDR_TYPE_DDR3 0
#define CONFIG_DDR_TYPE_DDR4 1
#define CONFIG_DDR_TYPE_LPDDR4 2
#define CONFIG_DDR_TYPE_LPDDR3 3
#define CONFIG_DDR_TYPE_LPDDR2 4
//#define CONFIG_DDR_TYPE_LPDDR4X 5
#define CONFIG_DDR_TYPE_AUTO 0xf
#define CONFIG_DDR_TYPE_AUTO_LIMIT CONFIG_DDR_TYPE_DDR4
/* lpddr3 related define */
#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
#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
#if 0
/* ddr channel defines */
#define CONFIG_DDR0_16BIT 1
#define CONFIG_DDR0_RANK0 2
#define CONFIG_DDR0_RANK01 3
#define CONFIG_DDR0_16BIT_2 4
#define CONFIG_DDR_CHL_AUTO 0xF
#define CONFIG_DDR0_16BIT_CH0 0x1
#define CONFIG_DDR0_16BIT_RANK01_CH0 0x4
#define CONFIG_DDR0_32BIT_RANK0_CH0 0x2
#define CONFIG_DDR0_32BIT_RANK01_CH01 0x3
#define CONFIG_DDR0_32BIT_16BIT_RANK0_CH0 0x5
#define CONFIG_DDR0_32BIT_16BIT_RANK01_CH0 0x6
#define CONFIG_DDR0_32BIT_RANK01_CH0 0x7
#define CONFIG_DDR0_32BIT_RANK0_CH01 0x8
#define ENABLE_SKIP_1D_MEM_LOAD 0x0
#define ENABLE_SKIP_1D_MEM_TRAINING 0x1
#define ENABLE_SKIP_2D_MEM_LOAD 0x2
#define ENABLE_SKIP_2D_MEM_TRAINING 0x3
#define PHY_IMEM_STEP_1D 0x1
#define PHY_IMEM_STEP_2D 0x2
#endif
#define VREF_SOC 0x1
#define VREF_DRAM 0x2
#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_DDR_TIMMING_DDR4_1600 0x0F
#define CONFIG_DDR_TIMMING_DDR4_1866 0x10
#define CONFIG_DDR_TIMMING_DDR4_2133 0x11
#define CONFIG_DDR_TIMMING_DDR4_2400 0x12
#define CONFIG_DDR_TIMMING_DDR4_2666 0x13
#define CONFIG_DDR_TIMMING_DDR4_3200 0x14
#define CONFIG_DDR_FUNC_TEST (1<<0)
#define CONFIG_DDR_INIT_RETRY_TOTAL (10)
#define CONFIG_DDR_PCTL_RETRY_TOTAL (100)
#define DDR_USE_1_RANK(chl_set) ((chl_set == CONFIG_DDR0_RANK0) || \
(chl_set == CONFIG_DDR0_16BIT))
#define DDR_USE_2_RANK(chl_set) ((chl_set == CONFIG_DDR0_RANK01) || \
(chl_set == CONFIG_DDR0_16BIT_2))
#ifndef CONFIG_LPDDR3_CA_TRAINING_CA0
#define CONFIG_LPDDR3_CA_TRAINING_CA0 CONFIG_LPDDR3_CA_TRAINING_USE_LANE0
#endif
#ifndef CONFIG_LPDDR3_CA_TRAINING_CA1
#define CONFIG_LPDDR3_CA_TRAINING_CA1 CONFIG_LPDDR3_CA_TRAINING_USE_LANE1
#endif
/* DMC_DDR_CTRL defines */
#define DDR_DDR4_ENABLE (1<<22)
#define DDR_RANK1_ENABLE (1<<21)
#define DDR_DDR4_BG_ENABLE (1<<20)
#define DDR_16BIT_ENABLE (1<<16)
#define DDR_RANK1_SIZE_CTRL (3)
#define DDR_RANK0_SIZE_CTRL (0)
/* ddr functions */
#define DDR_FUNC_D2PLL (1<<0)
#define DDR_FUNC_LP (1<<1)
#define DDR_FUNC_ZQ_PD (1<<2)
#define DDR_FUNC_EXT_VREF (1<<3)
#define DDR_FUNC_DDR4_TIMING_TEST (1<<4)
#define DDR_FUNC_DDR_PLL_BYPASS (1<<5)
#define DDR_FUNC_RDBI (1<<6)
#define DDR_FUNC_LPDDR3_CA (1<<7)
#define DDR_FUNC_PRINT_WINDOW (1<<8)
#define DDR_FUNC_FULL_TEST (1<<10)
#define DDR_FUNC_NONSEC_SCRAMBLE (1<<11)
#define DDR_FUNC_LPDDR3_CA_CA0_BIT0 (1<<20)
#define DDR_FUNC_LPDDR3_CA_CA0_BIT1 (1<<21)
#define DDR_FUNC_LPDDR3_CA_CA1_BIT0 (1<<22)
#define DDR_FUNC_LPDDR3_CA_CA1_BIT1 (1<<23)
#define DDR_FUNC_LPDDR3_CA_CA0_OFFSET (20)
#define DDR_FUNC_LPDDR3_CA_CA1_OFFSET (22)
#define DDR_FUNC_LPDDR3_SOC_ODT_ONLY_UP (1<<25)
#define DDR_FUNC_CONFIG_DDR_DVFS_FUNCTION (1<<28)
#define DDR_FUNC_CONFIG_DFE_FUNCTION (1<<29)
#define DDR_FUNC_FAST_BOOT_CHECK_CHIP_ID (1<<30)
#define DDR_FUNC_SCRAMBLE (1<<31)
/* dwc imem/dmem */
#define DWC_MEM_LOAD_ADDR 0xFFFE0000
#define DWC_IRAM_ADDR (0x50000)
#define DWC_IRAM_SIZE (0x8000) /* 32K */
#define DWC_DRAM_ADDR (0x54000)
#define DWC_DRAM_SIZE (0x4000) /* 16K */
/* dwc apb regs */
#define UctWriteProtShadow 0xd0004
#define UctWriteOnlyShadow 0xd0032
#define UctWriteProt 0xd0031
#define UctDatWriteOnlyShadow 0xd0034
/* pctl status */
#define UPCTL_STAT_MASK (7)
#define UPCTL_STAT_INIT (0)
#define UPCTL_STAT_CONFIG (1)
#define UPCTL_STAT_ACCESS (3)
#define UPCTL_STAT_LOW_POWER (5)
/* pctl cmds */
#define UPCTL_CMD_INIT (0)
#define UPCTL_CMD_CONFIG (1)
#define UPCTL_CMD_GO (2)
#define UPCTL_CMD_SLEEP (3)
#define UPCTL_CMD_WAKEUP (4)
/* name id defined in firmware header */
#define DDR_NAME_ID_AML_FW 0x304c4d41 //AML0
#define DDR_NAME_ID_PIEI 0x61656165 //eaea
#define DDR_NAME_ID_DDR3 0x33333364 //d333
#define DDR_NAME_ID_DDR4 0x34343464 //d444
#define DDR_NAME_ID_DDR4_2D 0x32323464 //d422
#define DDR_NAME_ID_LPDDR3 0x33336C64 //dl33
#define DDR_NAME_ID_LPDDR4 0x34346C64 //dl44
#define DDR_NAME_ID_LPDDR4_2D 0x30346C64 //dl42
#define DDR_NAME_ID_DIAGNOSE1 0x31676464 //ddg1
#define DDR_NAME_ID_DIAGNOSE2 0x32676464 //ddg2
/* PIEI */
#define DDR_PIEI_START_FLAG 0xfeed //eaea
/* dram cfg magic */
#define DRAM_CFG_MAGIC 0x2e676663
/* flow control */
#define DDR_FIRMWARE_VERSION_1 0x00201709
#define FW_LOAD_STEP_AML_FW 0xF
#define FW_LOAD_STEP_PIEI 0
#define FW_LOAD_STEP_1D 1
#define FW_LOAD_STEP_2D 2
#define FW_LOAD_STEP_DIAG1 3
#define FW_LOAD_STEP_DIAG2 4
/* basic defines */
#define AML_AC_PINMUX_G0_TOTAL 6
#define AML_AC_PINMUX_G1_TOTAL 29
#define AML_DFI_PINMUX_TOTAL 26
#define AML_DQ_PINMUX_TOTAL 36
#define AML_DQ_BYTES_TOTAL 4
/* d2pll defines */
#define D2PLL_ENABLE 1
#define DDR_STICKY_MAGIC_NUMBER 0x20180000
#define DDR_CHIP_ID 0x30
#define DDR_STICKY_OVERRIDE_CONFIG_MESSAGE_CMD 0x1 //override config
#define DDR_STICKY_SPECIAL_FUNCTION_CMD 0x2 //special test such as shift some bdlr or parameter or interleave test
#define DDR_INIT_CONFIG_STICKY_MESSAGE_SRAM_ADDRESS 0x00040000
#define DDR_INIT_CONFIG_GLOBAL_MESSAGE_SRAM_ADDRESS 0x00050000
/* debug function*/
/* ddr configs */
#define DDR_RFC_TYPE_DDR3_512Mbx1 0
#define DDR_RFC_TYPE_DDR3_512Mbx2 1
#define DDR_RFC_TYPE_DDR3_512Mbx4 2
#define DDR_RFC_TYPE_DDR3_512Mbx8 3
#define DDR_RFC_TYPE_DDR3_512Mbx16 4
#define DDR_RFC_TYPE_DDR4_2Gbx1 5
#define DDR_RFC_TYPE_DDR4_2Gbx2 6
#define DDR_RFC_TYPE_DDR4_2Gbx4 7
#define DDR_RFC_TYPE_DDR4_2Gbx8 8
#define DDR_RFC_TYPE_LPDDR4_2Gbx1 9
#define DDR_RFC_TYPE_LPDDR4_3Gbx1 10
#define DDR_RFC_TYPE_LPDDR4_4Gbx1 11
#define DDR_RFC_TYPE_LPDDR4_6Gbx1 12
#define DDR_RFC_TYPE_LPDDR4_8Gbx1 13
#define DDR_ENABLE_FINE_TUNE_FLAG_AC_DELAY (1<<0)
#define DDR_ENABLE_FINE_TUNE_FLAG_WRITE_DQS (1<<1)
#define DDR_ENABLE_FINE_TUNE_FLAG_READ_DQS (1<<2)
#define DDR_ENABLE_FINE_TUNE_FLAG_WRITE_DQ (1<<3)
#define DDR_ENABLE_FINE_TUNE_FLAG_READ_DQ (1<<4)
#define IMPEDENCE_120P3_240P2_480P1 1
#define IMPEDENCE_120P6_1 2
#define IMPEDENCE_120P3_240P2_480P1_ODT 3
#define IMPEDENCE_AML_SOC_DATA 1
#define IMPEDENCE_AML_SOC_AC 2
#define VREF_DDR4_SDRAM_DAC 1
#define VREF_LPDDR4_SDRAM_DAC 2
#define VREF_LPDDR4X_SDRAM_DAC 3
#define VREF_SOC_AML_DAC_LPDDR4 4
#define VREF_SOC_AML_DAC_LPDDR4X 5
#define VREF_SOC_AML_DAC_DDR3 6
#define VREF_SOC_AML_DAC_DDR4 7
#define DDR_PHY_BLOCK_ANIB 0x0
#define DDR_PHY_BLOCK_DBYTE 0x1
#define DDR_PHY_BLOCK_MASTER 0x2
#define DDR_PHY_BLOCK_ACSM 0x4
#define DDR_PHY_BLOCK_UPTCL_MEMORY 0x5
#define DDR_PHY_BLOCK_PPGC 0x7
#define DDR_PHY_BLOCK_INITENG 0x9
#define DDR_PHY_BLOCK_PUB 0xC
#define DDR_PHY_BLOCK_APBONLY 0xD
/* others */ /* useless? */
/* bist */
#define CONFIG_DDR_CODE_INCLUDE_LPDDR3 0
#define CONFIG_DDR_CODE_INCLUDE_DDR4 1
#define CONFIG_DEBUG_INCLUDE_D2PLL 1
#define CONFIG_DEBUG_DDR_BIST_TEST_WINDOWS 1
#define CONFIG_DEBUG_DDR_BIST_ONLY_COMPARE_ONE_LANE 1
#define CONFIG_DEBUG_DDR_BIST_BYTE_EXTRA_PATTERN 1
#define CONFIG_DEBUG_DDR_BIST_NO_USE_FSM_INIT_VALUE 1
#define CONFIG_DEBUG_DDR_BIST_NO_USE_FSM_INIT_VALUE_USE_LINEAR 0
#define CONFIG_DEBUG_DDR_BIST_NO_USE_FSM_INIT_VALUE_USE_FAST_LINEAR 1
#define CONFIG_DEBUG_DDR_BIST_USE_OLD_METHOD_AGAIN 0
#define CONFIG_DDR_DMC_DDR_TEST 0
#define CONFIG_DDR_CPU_DDR_TEST 0
#define CONFIG_BIST_USE_THRESHOLD 0
#define CONFIG_DEBUG_DDR_BIST_TEST_2D_EYE 0
#define CONFIG_DEBUG_DDR_BIST_TEST_DATA
//#define CONFIG_DEBUG_DDR_BIST_TEST_ADD
#define DDR_BIST_LANE_DATA0 0
#define DDR_BIST_LANE_DATA1 1
#define DDR_BIST_LANE_DATA2 2
#define DDR_BIST_LANE_DATA3 3
#define DDR_BIST_LANE_AC 4
#define DDR_BIST_PATTERN_WALK_0 0
#define DDR_BIST_PATTERN_WALK_1 1
#define DDR_BIST_PATTERN_WALK_RANDOM 2
#define DDR_BIST_PATTERN_WALK_PRE 3
/* diagnose function defines */
#define CONFIG_DIAGNOSE_DISABLE 0x0
#define CONFIG_DIAGNOSE_1D 0x1
#define CONFIG_DIAGNOSE_2D 0x2
#define CONFIG_DIAGNOSE_1D_2D 0x3
#define DDR_RFC_TYPE_LPDDR4_6Gbx1 12
#define DDR_RFC_TYPE_LPDDR4_8Gbx1 13
#define CONFIG_BOARD_ID_DISABLE 0
#define CONFIG_BOARD_ID_MASK 0xFF
#define CONFIG_DDR_TYPE_DDR3 0
#define CONFIG_DDR_TYPE_DDR4 1
#define CONFIG_DDR_TYPE_LPDDR4 2
#define CONFIG_DDR_TYPE_LPDDR3 3
#define CONFIG_DDR_TYPE_LPDDR2 4
#define CONFIG_DDR_TYPE_LPDDR4X 5
#define CONFIG_DDR0_16BIT_CH0 1
#define CONFIG_DDR0_16BIT_RANK01_CH0 4
#define CONFIG_DDR0_32BIT_RANK0_CH0 2
#define CONFIG_DDR0_32BIT_RANK01_CH01 3
#define CONFIG_DDR0_32BIT_16BIT_RANK0_CH0 5
#define CONFIG_DDR0_32BIT_16BIT_RANK01_CH0 6
#define CONFIG_DDR0_32BIT_RANK01_CH0 7
#define CONFIG_DDR0_32BIT_RANK0_CH01 8
#define CONFIG_DDR0_32BIT_RANK0_16BIT_RANK1_LOW_CH0 0x9
#define CONFIG_DDR0_32BIT_RANK0_16BIT_RANK1_HIGH_CH0 0xa
#define CONFIG_DDR0_32BIT_16BIT_RANK0_CH0_MODE2 0xB
#define CONFIG_DDR0_32BIT_RANK0_16BIT_RANK1_LOW_CH0_MODE2 0xC
#define CONFIG_DISABLE_D32_D63 0xf0
#define CONFIG_DISABLE_D16_D31 0xfc
#define CONFIG_DDR0_SIZE_0MB 0
#define CONFIG_DDR0_SIZE_128MB 128
#define CONFIG_DDR0_SIZE_256MB 256
#define CONFIG_DDR0_SIZE_512MB 512
#define CONFIG_DDR0_SIZE_768MB 768
#define CONFIG_DDR0_SIZE_1024MB 1024
#define CONFIG_DDR0_SIZE_1536MB 1536
#define CONFIG_DDR0_SIZE_2048MB 2048
#define CONFIG_DDR0_SIZE_3072MB 3072
#define CONFIG_DDR0_SIZE_4096MB 4096
#define CONFIG_DDR0_SIZE_AUTO_SIZE 0xffff
#define CONFIG_DDR1_SIZE_0MB 0
#define CONFIG_DDR1_SIZE_128MB 128
#define CONFIG_DDR1_SIZE_256MB 256
#define CONFIG_DDR1_SIZE_512MB 512
#define CONFIG_DDR1_SIZE_768MB 768
#define CONFIG_DDR1_SIZE_1024MB 1024
#define CONFIG_DDR1_SIZE_1536MB 1536
#define CONFIG_DDR1_SIZE_2048MB 2048
#define CONFIG_DDR1_SIZE_3072MB 3072
#define CONFIG_DDR1_SIZE_4096MB 4096
#define CONFIG_DDR1_SIZE_AUTO_SIZE 0xffff
#define CONFIG_DRAM_MODE_X4 1
#define CONFIG_DRAM_MODE_X8 1
#define CONFIG_DRAM_MODE_X16 0
#define CONFIG_USE_DDR_1T_MODE 0
#define CONFIG_USE_DDR_2T_MODE 1
#define eLOG_CHL_0 0
#define eLOG_CHL_1 1
#define eLOG_CHL_2 2
#define eLOG_CHL_3 3
#define eLOG_CHL_4 4
#define eLOG_CHL_5 5
#define eLOG_CHL_6 6
#define eLOG_CHL_7 7
#define LOG_LEVEL_BASIC (1<<eLOG_CHL_0)
#define LOG_LEVEL_FULL (1<<eLOG_CHL_0)|(1<<eLOG_CHL_1)|(1<<eLOG_CHL_2)|(1<<eLOG_CHL_3)|(1<<eLOG_CHL_4)|(1<<eLOG_CHL_5)|(1<<eLOG_CHL_6)
#define LOG_LEVEL_DEBUG (1<<eLOG_CHL_0)|(1<<eLOG_CHL_1)|(1<<eLOG_CHL_2)|(1<<eLOG_CHL_3)|(1<<eLOG_CHL_4)|(1<<eLOG_CHL_5)|(1<<eLOG_CHL_6)|(1<<eLOG_CHL_7)
#define DDR_WRITE_READ_DBI_DISABLE 0
#define DDR_READ_DBI_ENABLE 1
#define DDR_WRITE_DBI_ENABLE 2
#define DDR_WRITE_READ_DBI_ENABLE 3
#define DDR_PLL_SSC_DISABLE 0
#define DDR_PLL_SSC_3000PPM 0x3000
#define DDR_PLL_SSC_5000PPM 0x3001
#define DDR_PLL_SSC_6000PPM 0x3002
#define DDR_PLL_SSC_8000PPM 0x3003
#define DDR_PLL_SSC_9000PPM 0x3004
#define DDR_DMC_REMAP_DDR3_32BIT {\
[0] = ( 5 | 6 << 5 | 7 << 10 | 8 << 15 | 9 << 20 | 10 << 25 ),\
[1] = ( 11| 0 << 5 | 0 << 10 | 12 << 15 | 16 << 20 | 17 << 25 ),\
[2] = ( 18| 19 << 5 | 20 << 10 | 21 << 15 | 22 << 20 | 23 << 25 ),\
[3] = ( 24| 25 << 5 | 26 << 10 | 27 << 15 | 28 << 20 | 29 << 25 ),\
[4] = ( 30| 13 << 5 | 14 << 10 | 15 << 15 | 0 << 20 | 0 << 25 ),\
}
#define DDR_DMC_REMAP_DDR4_32BIT {\
[0] = ( 5 | 7 << 5 | 8 << 10 | 9 << 15 | 10 << 20 | 11 << 25 ),\
[1] = ( 12| 0 << 5 | 0 << 10 | 14 << 15 | 15 << 20 | 16 << 25 ),\
[2] = ( 17| 18 << 5 | 19 << 10 | 21 << 15 | 22 << 20 | 23 << 25 ),\
[3] = ( 24| 25 << 5 | 26 << 10 | 27 << 15 | 28 << 20 | 29 << 25 ),\
[4] = ( 30| 13 << 5 | 20 << 10 | 6 << 15 | 0 << 20 | 31 << 25 ),\
}
#define DDR_DMC_REMAP_DDR3_16BIT {\
[0] = ( 0 | 5 << 5 | 6<< 10 | 7 << 15 | 8 << 20 | 9 << 25 ),\
[1] = ( 10| 0 << 5 | 0 << 10 | 14 << 15 | 15 << 20 | 16 << 25 ),\
[2] = ( 17|( 18 << 5) |( 19 << 10) |( 20 << 15) |( 21 << 20) | (22 << 25 )),\
[3] = ( 23| 24 << 5 | 25 << 10 | 26 << 15 | 27 << 20 | 28 << 25 ),\
[4] = ( 29| 11<< 5 | 12 << 10 | 13<< 15 | 0 << 20 | 0 << 25 ),\
}
#define DDR_DMC_REMAP_DDR4_16BIT {\
[0] = ( 0 | 5 << 5 | 6<< 10 | 7 << 15 | 8 << 20 | 9 << 25 ),\
[1] = ( 10| 0 << 5 | 0 << 10 | 14 << 15 | 15 << 20 | 16 << 25 ),\
[2] = ( 17|( 18 << 5) |( 19 << 10) |( 20 << 15) |( 21 << 20) | (22 << 25 )),\
[3] = ( 23| 24 << 5 | 25 << 10 | 26 << 15 | 27 << 20 | 28 << 25 ),\
[4] = ( 29| 11<< 5 | 12 << 10 | 13<< 15 | 0 << 20 | 30 << 25 ),\
}
#define DDR_DMC_REMAP_LPDDR4_16BIT {\
[0] = ( 0 | 5 << 5 | 6<< 10 | 7 << 15 | 8 << 20 | 9 << 25 ),\
[1] = ( 10| 0 << 5 | 0 << 10 | 14 << 15 | 15 << 20 | 16 << 25 ),\
[2] = ( 17|( 18 << 5) |( 19 << 10) |( 20 << 15) |( 21 << 20) | (22 << 25 )),\
[3] = ( 23| 24 << 5 | 25 << 10 | 26 << 15 | 27 << 20 | 28 << 25 ),\
[4] = ( 29| 11<< 5 | 12 << 10 | 13<< 15 | 0 << 20 | 0 << 25 ),\
}
#define DDR_DMC_REMAP_LPDDR4_32BIT {\
[0] = ( 5 | 6 << 5 | 7 << 10 | 8 << 15 | 9 << 20 | 10 << 25 ),\
[1] = ( 11| 0 << 5 | 0 << 10 | 12 << 15 | 14 << 20 | 15 << 25 ),\
[2] = ( 17| 18 << 5 | 19 << 10 | 21 << 15 | 22 << 20 | 23 << 25 ),\
[3] = ( 24| 25 << 5 | 26 << 10 | 27 << 15 | 28 << 20 | 29 << 25 ),\
[4] = ( 0 | 13 << 5 | 16 << 10 | 20 << 15 | 0 << 20 | 0 << 25 ),\
}
//cs0 write bit0-1,cs0 read bit4-5,cs1 write bit 8-9,cs1 read bit 12-13
#define DDR_DRAM_ODT_DISABLE 0
#define DDR_DRAM_ODT_W_CS0_ODT0 0x1
#define DDR_DRAM_ODT_W_CS0_ODT0_CS1_ODT1 0x201
#define DDR_DRAM_ODT_W_CS0_ODT1_CS1_ODT0 0x102
#define DDR_DRAM_ODT_W_CS0_ODT01_CS1_ODT01 0x303
#define DDR_DRAM_ODT_W_CS0_ODT0_CS1_ODT1__R_CS0_ODT1_CS1_ODT0 0x1221
#define DDR_DRAM_ODT_W_CS0_ODT1_CS1_ODT0__R_CS0_ODT1_CS1_ODT0 0x1122
#define DDR_DRAM_ODT_W_CS0_ODT01_CS1_ODT01__R_CS0_ODT1_CS1_ODT0 0x1323
#define DDR_DRAM_ODT_R_CS0_ODT1_CS1_ODT0 0x1020
#define DDR_SOC_AC_DRV_0_OHM 0
#define DDR_SOC_AC_DRV_120_OHM 120
#define DDR_SOC_AC_DRV_60_OHM 60
#define DDR_SOC_AC_DRV_40_OHM 40
#define DDR_SOC_AC_DRV_30_OHM 30
#define DDR_SOC_AC_DRV_24_OHM 24
#define DDR_SOC_AC_DRV_20_OHM 20
#define DDR_SOC_DATA_DRV_ODT_0_OHM 0
#define DDR_SOC_DATA_DRV_ODT_240_OHM 240
#define DDR_SOC_DATA_DRV_ODT_120_OHM 120
#define DDR_SOC_DATA_DRV_ODT_80_OHM 80
#define DDR_SOC_DATA_DRV_ODT_60_OHM 60
#define DDR_SOC_DATA_DRV_ODT_48_OHM 48
#define DDR_SOC_DATA_DRV_ODT_40_OHM 40
#define DDR_SOC_DATA_DRV_ODT_34_OHM 34
#define DDR_DRAM_DDR3_DRV_34_OHM 34
#define DDR_DRAM_DDR3_DRV_40_OHM 40
#define DDR_DRAM_DDR4_DRV_34_OHM 34
#define DDR_DRAM_DDR4_DRV_48_OHM 48
#define DDR_DRAM_LPDDR3_DRV_34_OHM 34
#define DDR_DRAM_LPDDR3_DRV_40_OHM 40
#define DDR_DRAM_LPDDR3_DRV_48_OHM 48
#define DDR_DRAM_LPDDR4_DRV_40_OHM 40
#define DDR_DRAM_LPDDR4_DRV_48_OHM 48
#define DDR_DRAM_LPDDR4_DRV_60_OHM 60
#define DDR_DRAM_LPDDR4_DRV_80_OHM 80
#define DDR_DRAM_LPDDR4_DRV_120_OHM 120
#define DDR_DRAM_LPDDR4_DRV_240_OHM 240
#define DDR_DRAM_DDR3_ODT_0_OHM 0
#define DDR_DRAM_DDR3_ODT_120_OHM 120
#define DDR_DRAM_DDR3_ODT_60_OHM 60
#define DDR_DRAM_DDR3_ODT_40_OHM 40
#define DDR_DRAM_LPDDR3_ODT_0_OHM 0
#define DDR_DRAM_LPDDR3_ODT_240_OHM 240
#define DDR_DRAM_LPDDR3_ODT_120_OHM 120
#define DDR_DRAM_LPDDR3_ODT_60_OHM 60
#define DDR_DRAM_LPDDR4_ODT_0_OHM 0
#define DDR_DRAM_LPDDR4_ODT_240_OHM 240
#define DDR_DRAM_LPDDR4_ODT_120_OHM 120
#define DDR_DRAM_LPDDR4_ODT_80_OHM 80
#define DDR_DRAM_LPDDR4_ODT_60_OHM 60
#define DDR_DRAM_LPDDR4_ODT_48_OHM 48
#define DDR_DRAM_LPDDR4_ODT_40_OHM 40
#define DDR_DRAM_DDR4_ODT_0_OHM 0
#define DDR_DRAM_DDR4_ODT_34_OHM 34
#define DDR_DRAM_DDR4_ODT_40_OHM 40
#define DDR_DRAM_DDR4_ODT_48_OHM 48
#define DDR_DRAM_DDR4_ODT_60_OHM 60
#define DDR_DRAM_DDR4_ODT_80_OHM 80
#define DDR_DRAM_DDR4_ODT_120_OHM 120
#define DDR_DRAM_DDR4_ODT_240_OHM 240
#define DDR_DRAM_DDR_WR_ODT_0_OHM 0
#define DDR_DRAM_DDR3_WR_ODT_0_OHM 0
#define DDR_DRAM_DDR3_WR_ODT_120_OHM 120
#define DDR_DRAM_DDR3_WR_ODT_60_OHM 60
#define DDR_DRAM_DDR4_WR_ODT_0_OHM 0
#define DDR_DRAM_DDR4_WR_ODT_240_OHM 240
#define DDR_DRAM_DDR4_WR_ODT_120_OHM 120
#define DDR_DRAM_DDR4_WR_ODT_80_OHM 80
#define DDR_DRAM_DDR_AC_ODT_0_OHM 0
#define DDR_DRAM_LPDDR4_AC_ODT_0_OHM 0
#define DDR_DRAM_LPDDR4_AC_ODT_240_OHM 240
#define DDR_DRAM_LPDDR4_AC_ODT_120_OHM 120
#define DDR_DRAM_LPDDR4_AC_ODT_80_OHM 80
#define DDR_DRAM_LPDDR4_AC_ODT_60_OHM 60
#define DDR_DRAM_LPDDR4_AC_ODT_48_OHM 48
#define DDR_DRAM_LPDDR4_AC_ODT_40_OHM 40
#define DDR_DRAM_LPDDR4_OUTPUT_2_5_VDDQ 0
#define DDR_DRAM_LPDDR4_OUTPUT_1_3_VDDQ 1
#define DDR_SOC_READ_DQS_GATE_MODE_WINDOW_MODE_0_DDR3 1
#define DDR_SOC_READ_DQS_GATE_MODE_WINDOW_MODE_1_DDR4 2
#define DDR_SOC_READ_DQS_GATE_MODE_WINDOW_MODE_2_DDR4 3
#define DDR_SOC_READ_DQS_GATE_MODE_WINDOW_MODE_3_LPDDR4 4
#define DDR_SOC_READ_DQS_GATE_MODE_EDGE_MODE_1_DDR3 5
#define DDR_SOC_READ_DQS_GATE_MODE_EDGE_MODE_1_DDR4 6
#define DDR_SOC_READ_DQS_GATE_MODE_EDGE_MODE_1_LPDDR4 7
#define DDR_SOC_READ_DQS_GATE_MODE_EDGE_MODE_3_LPDDR4 8
#define DDR_SOC_READ_DQS_GATE_MODE_WIDE_MODE_RPULL_0_DDR3 9
#define DDR_SOC_READ_DQS_GATE_MODE_WIDE_MODE_RPULL_1_LPDDR4 10
#if 0
#define DDR_SOC_READ_DQS_GATE_MODE_RPULL_WIDE_WINDOW 1
#define DDR_SOC_READ_DQS_GATE_MODE_DDR3_WINDOW_MODE_0 2
#define DDR_SOC_READ_DQS_GATE_MODE_DDR3_WINDOW_MODE_1 3
#define DDR_SOC_READ_DQS_GATE_MODE_DDR3_WINDOW_MODE_2 4
#define DDR_SOC_READ_DQS_GATE_MODE_DDR3_WINDOW_MODE_3 5
#define DDR_SOC_READ_DQS_GATE_MODE_DDR3_EDGE_MODE_0 6
#define DDR_SOC_READ_DQS_GATE_MODE_DDR3_EDGE_MODE_1 7
#define DDR_SOC_READ_DQS_GATE_MODE_DDR3_EDGE_MODE_2 8
#define DDR_SOC_READ_DQS_GATE_MODE_DDR3_EDGE_MODE_3 9
#define DDR_SOC_READ_DQS_GATE_MODE_DDR4_WINDOW_MODE_0 10
#define DDR_SOC_READ_DQS_GATE_MODE_DDR4_WINDOW_MODE_1 11
#define DDR_SOC_READ_DQS_GATE_MODE_DDR4_WINDOW_MODE_2 12
#define DDR_SOC_READ_DQS_GATE_MODE_DDR4_WINDOW_MODE_3 13
#define DDR_SOC_READ_DQS_GATE_MODE_DDR4_EDGE_MODE_0 14
#define DDR_SOC_READ_DQS_GATE_MODE_DDR4_EDGE_MODE_1 15
#define DDR_SOC_READ_DQS_GATE_MODE_DDR4_EDGE_MODE_2 16
#define DDR_SOC_READ_DQS_GATE_MODE_DDR4_EDGE_MODE_3 17
#define DDR_SOC_READ_DQS_GATE_MODE_LPDDR4_WINDOW_MODE_0 18
#define DDR_SOC_READ_DQS_GATE_MODE_LPDDR4_WINDOW_MODE_1 19
#define DDR_SOC_READ_DQS_GATE_MODE_LPDDR4_WINDOW_MODE_2 20
#define DDR_SOC_READ_DQS_GATE_MODE_LPDDR4_WINDOW_MODE_3 21
#define DDR_SOC_READ_DQS_GATE_MODE_LPDDR4_EDGE_MODE_0 22
#define DDR_SOC_READ_DQS_GATE_MODE_LPDDR4_EDGE_MODE_1 23
#define DDR_SOC_READ_DQS_GATE_MODE_LPDDR4_EDGE_MODE_2 24
#define DDR_SOC_READ_DQS_GATE_MODE_LPDDR4_EDGE_MODE_3 25
#endif