工具/软件:Linux
我们有一个使用 Hynix 的1个 DDR3存储器芯片的 Sitara 设计。 (H5TQ2G63DFR-H9C)。
DDR3时钟设置为303MHz。
内核3.2.0
现在、我们要将 DDR 存储器更改为4Gbit 器件(H5TQ4G63CFR-RDC)。
比较这两个存储器数据表不显示任何时序差分、因此相同的时钟频率。 应适用于4Gbit 器件。
但我们必须恢复时钟频率。 配置寄存器中的285MHz、以便正确引导。 然而、这不是我们要继续使用的频率。 我们不想降低频率。 该问题可能表明、我们首先面临可能的时序违规。
请参阅下面我们当前使用的寄存器值的详细信息。 使用 Micron MT41J128M16JT-125的设置。 (尽管我们使用的是 Hynix 器件)。
CM_CLKSEL_DPLL_DDR 寄存器(偏移= 40h):0x00012F17
CM_DIV_M2_DPLL_DDR 寄存器(偏移= A0h):0x00000201
SDRAM_CONFIG (0x4c000008):0x61C04AB2
SDRAM_CONFIG2 (0x4c00000C):0x00000000
SDRAM_REF_CTRL (0x4c000010):0x0000093B
U-boot i (DDR_defs.h):
/* AM335X EMIF 寄存器值*/
#define VTP CTRL_READY (0x1 <<5)
#define VTP CTRL_ENABLE (0x1 <<6)
#define VTP CTRL_START_EN (0x1)
#define PHY_DLL_LOCK_DIFF 0x0
#define DDR_CKE_CTRL_NORMAL 0x1
/* Micron MT41J128M16JT-125 *
#define DDR3_EMIF_READ_DERAT等待 时间0x100006 //启用动态断电*/
#define DDR3_EMIF_TIM1 0x0888A39B
#define DDR3_EMIF_TIT2 0x26337FDA
#define DDR3_EMIF_TIM3 0x501F830F
#define DDR3_EMIF_SDCFG 0x61C04AB2
#define DDR3_EMIF_SDREF 0x0000093B
#define DDR3_ZQ_CFG 0x50074BE4
#define DDR3_DLL_LOCK_DIFF 0x1
#define DDR3_RA比 0x40
#define DDR3_INOP_CLKOUT 0x1
#define DDR3_RD_DQS 0x3B
#define DDR3_WR_DQS 0x85
#define DDR3_PHY_WR_DATA 0xC1
#define DDR3_PHY_FIFO_WE 0x100
#define DDR3_IOCTRL_Value 0x18B