This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3352: AM3352 DDR 穩定性問題

Part Number: AM3352


Hi Expert,

DDR3 400MHz無法正常開機,降頻跑303MHz會有不穩定的狀況

執行Software Leveling結果如附件:SW_Leveling_400M.txt, SW_Leveling_303M.txt

400M無法跑出數值,303M可以跑出數值。

 

使用303M進行設定並測試,memtester會錯誤,

設定部分請參考board.c

測試結果如memtester.txt

 

是否有其他建議?

 

謝謝

DanielAM335x_EMIF_Configuration_Tool_v3_V73CBG04808RDJ11_shannon.xlsx

#define V73CBG04808RDJ11_CLK	303
#define V73CBG04808RDJ11_EMIF_READ_LATENCY	0x00100208
#define V73CBG04808RDJ11_EMIF_TIM1			0x888A39B
#define V73CBG04808RDJ11_EMIF_TIM2			0x246D7FDA
#define V73CBG04808RDJ11_EMIF_TIM3			0x50FFE6AF
#define V73CBG04808RDJ11_EMIF_SDCFG			0x61A053B2
#define V73CBG04808RDJ11_EMIF_SDREF			0x0000093B
#define V73CBG04808RDJ11_ZQ_CFG				0x50074BE1
#define V73CBG04808RDJ11_RATIO				0x100
#define V73CBG04808RDJ11_INVERT_CLKOUT		0x1
#define V73CBG04808RDJ11_RD_DQS				0x3C
#define V73CBG04808RDJ11_WR_DQS				0xC4
#define V73CBG04808RDJ11_PHY_FIFO_WE		0x118
#define V73CBG04808RDJ11_PHY_WR_DATA		0xFB
#define V73CBG04808RDJ11_IOCTRL_VALUE		0x0000018B

static const struct ddr_data ddr3_pg5902b_data = {
	.datardsratio0 = V73CBG04808RDJ11_RD_DQS,
	.datawdsratio0 = V73CBG04808RDJ11_WR_DQS,
	.datafwsratio0 = V73CBG04808RDJ11_PHY_FIFO_WE,
	.datawrsratio0 = V73CBG04808RDJ11_PHY_WR_DATA,
};

static const struct cmd_control ddr3_pg5902b_cmd_ctrl_data = {
	.cmd0csratio = V73CBG04808RDJ11_RATIO,
	.cmd0iclkout = V73CBG04808RDJ11_INVERT_CLKOUT,

	.cmd1csratio = V73CBG04808RDJ11_RATIO,
	.cmd1iclkout = V73CBG04808RDJ11_INVERT_CLKOUT,

	.cmd2csratio = V73CBG04808RDJ11_RATIO,
	.cmd2iclkout = V73CBG04808RDJ11_INVERT_CLKOUT,
};

static struct emif_regs ddr3_pg5902b_emif_reg_data = {
	.sdram_config = V73CBG04808RDJ11_EMIF_SDCFG,
	.ref_ctrl = V73CBG04808RDJ11_EMIF_SDREF,
	.sdram_tim1 = V73CBG04808RDJ11_EMIF_TIM1,
	.sdram_tim2 = V73CBG04808RDJ11_EMIF_TIM2,
	.sdram_tim3 = V73CBG04808RDJ11_EMIF_TIM3,
	.zq_config = V73CBG04808RDJ11_ZQ_CFG,
	.emif_ddr_phy_ctlr_1 = V73CBG04808RDJ11_EMIF_READ_LATENCY,
};

const struct dpll_params dpll_ddr_pg5902b = {
		V73CBG04808RDJ11_CLK, OSC-1, 1, -1, -1, -1, -1};

const struct dpll_params *get_dpll_ddr_params(void)
{
	return &dpll_ddr_pg5902b;
}

const struct ctrl_ioregs ioregs_pg5902b = {
	.cm0ioctl		= V73CBG04808RDJ11_IOCTRL_VALUE,
	.cm1ioctl		= V73CBG04808RDJ11_IOCTRL_VALUE,
	.cm2ioctl		= V73CBG04808RDJ11_IOCTRL_VALUE,
	.dt0ioctl		= V73CBG04808RDJ11_IOCTRL_VALUE,
	.dt1ioctl		= V73CBG04808RDJ11_IOCTRL_VALUE,
};

void sdram_init(void)
{
	config_ddr(V73CBG04808RDJ11_CLK, &ioregs_pg5902b, &ddr3_pg5902b_data,
		   &ddr3_pg5902b_cmd_ctrl_data, &ddr3_pg5902b_emif_reg_data, 0);
}
login as: root
root@10.0.50.100's password:
# cd /jffs2/
# date && ./memtester 900M
Thu Jul 14 07:45:55 UTC 2022
memtester version 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 900MB (943718400 bytes)
got  900MB (943718400 bytes), trying mlock ...locked.
Loop 1:
  Stuck Address       : testing  11FAILURE: possible bad address line at offset 0x0f586000.
Skipping to next test...
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : testing   3FAILURE: 0xff00ff00 != 0x00000000 at offset 0x03ee6010.
FAILURE: 0x00ff00ff != 0xffffffff at offset 0x03ee6014.
FAILURE: 0xff00ff00 != 0x00000000 at offset 0x03ee6018.
  Block Sequential    : setting   0
AM335x DDR3 Software Leveling -- Version: Beta 3.0
                              -- Copyright: Texas Instruments China Local Team
 *************************** Program Start********************************

Please input the AM335x EMIF Timing Configuration:
-- AM335x Default EMIF Timing configuration (for StarterKit EVM) --
DDR3_EMIF_SDRAM_TIM_1 : 0x0888A39B
DDR3_EMIF_SDRAM_TIM_2 : 0x26337FDA
DDR3_EMIF_SDRAM_TIM_3 : 0x501F830F
DDR3_EMIF_SDRAM_CONFIG : 0x61C04AB2

Your choice:  1. Use the default one; 2. Input your own one.
Please Choose The DDR3 Frequency:  1. 303MHz; 2. 400MHz.
DDR3 Frequency is Set at 303MHz!

Please input your DDR3_EMIF_SDRAM_TIM_1 conifguration (in Hex) :
0888A39B
Please input your DDR3_EMIF_SDRAM_TIM_2 conifguration (in Hex) :
246D7FDA
Please input your DDR3_EMIF_SDRAM_TIM_3 conifguration (in Hex) :
50FFE6AF
Please input your DDR3_EMIF_SDRAM_CONFIG conifguration (in Hex) :
61A053B2
Your input EMIF Timing configuration --
DDR3_EMIF_SDRAM_TIM_1 :         0x888A39B
DDR3_EMIF_SDRAM_TIM_2 :         0x246D7FDA
DDR3_EMIF_SDRAM_TIM_3 :         0x50FFE6AF
DDR3_EMIF_SDRAM_CONFIG :        0x61A053B2

Please Enter the PHY_INVERT_CLKOUT value (0 or 1) from the spreadsheet :
1
Please Enter the Seed RD_DQS_SLAVE_RATIO Value in Hex to search the RD DQS Ratio Window :
40
Please Enter the Seed FIFO_WE_SLAVE_RATIO Value in Hex to search the RD DQS Gate Window :
10E
Please Enter the Seed WR_DQS_SLAVE_RATIO Write DQS Ratio Value in Hex to search the Write DQS Ratio Window :
80
Please Enter the Seed PHY_CTRL_SLAVE_RATIO Value in Hex :
100
The ratio seeds for the DDR3 Software Leveling :
invert_clkout =         0x1
RD_DQS_RATIO_VAL =      0x40
FIFO_WE_SLAVE_RATIO =   0x10E
WR_DQS_SLAVE_RATIO =    0x80
PHY_CTRL_SLAVE_RATIO =  0x100

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x11C
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x85
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xBB
***************************************************************
rd_dqs_range = 60
fifo_we_range = 284
wr_dqs_range = 133
wr_data_range = 187

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x118
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x88
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xBF
***************************************************************
rd_dqs_range = 0
fifo_we_range = 4
wr_dqs_range = 3
wr_data_range = 4

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x118
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x8C
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xC4
***************************************************************
rd_dqs_range = 0
fifo_we_range = 0
wr_dqs_range = 4
wr_data_range = 5

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x117
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x90
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xC6
***************************************************************
rd_dqs_range = 0
fifo_we_range = 1
wr_dqs_range = 4
wr_data_range = 2

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x117
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x94
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xCB
***************************************************************
rd_dqs_range = 0
fifo_we_range = 0
wr_dqs_range = 4
wr_data_range = 5

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x117
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x98
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xCF
***************************************************************
rd_dqs_range = 0
fifo_we_range = 0
wr_dqs_range = 4
wr_data_range = 4

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x118
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x9D
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xD3
***************************************************************
rd_dqs_range = 0
fifo_we_range = 1
wr_dqs_range = 5
wr_data_range = 4

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x119
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0xA2
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xD8
***************************************************************
rd_dqs_range = 0
fifo_we_range = 1
wr_dqs_range = 5
wr_data_range = 5

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x11A
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0xA8
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xDD
***************************************************************
rd_dqs_range = 0
fifo_we_range = 1
wr_dqs_range = 6
wr_data_range = 5

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x11A
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0xAD
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xE3
***************************************************************
rd_dqs_range = 0
fifo_we_range = 0
wr_dqs_range = 5
wr_data_range = 6

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x11A
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0xB0
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xE8
***************************************************************
rd_dqs_range = 0
fifo_we_range = 0
wr_dqs_range = 3
wr_data_range = 5

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x117
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0xB4
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xEC
***************************************************************
rd_dqs_range = 0
fifo_we_range = 3
wr_dqs_range = 4
wr_data_range = 4

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x118
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0xB8
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xEE
***************************************************************
rd_dqs_range = 0
fifo_we_range = 1
wr_dqs_range = 4
wr_data_range = 2

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x117
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0xBD
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xF2
***************************************************************
rd_dqs_range = 0
fifo_we_range = 1
wr_dqs_range = 5
wr_data_range = 4

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x117
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0xC1
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xF9
***************************************************************
rd_dqs_range = 0
fifo_we_range = 0
wr_dqs_range = 4
wr_data_range = 7

Optimal values not reached, rerunning program with new values...

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x118
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0xC4
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xFB
***************************************************************
rd_dqs_range = 0
fifo_we_range = 1
wr_dqs_range = 3
wr_data_range = 2

Optimal values have been found!!

***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x3C
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x118
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0xC4
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0xFB
***************************************************************

===== END OF TEST =====
DDR3 software leveling done!


AM335x DDR3 Software Leveling -- Version: Beta 3.0
                              -- Copyright: Texas Instruments China Local Team
 *************************** Program Start********************************

Please input the AM335x EMIF Timing Configuration:
-- AM335x Default EMIF Timing configuration (for StarterKit EVM) --
DDR3_EMIF_SDRAM_TIM_1 : 0x0888A39B
DDR3_EMIF_SDRAM_TIM_2 : 0x26337FDA
DDR3_EMIF_SDRAM_TIM_3 : 0x501F830F
DDR3_EMIF_SDRAM_CONFIG : 0x61C04AB2

Your choice:  1. Use the default one; 2. Input your own one.
Please Choose The DDR3 Frequency:  1. 303MHz; 2. 400MHz.
DDR3 Frequency is Set at 400MHz!

Please input your DDR3_EMIF_SDRAM_TIM_1 conifguration (in Hex) :
0AAAD4DB
Please input your DDR3_EMIF_SDRAM_TIM_2 conifguration (in Hex) :
248F7FDA
Please input your DDR3_EMIF_SDRAM_TIM_3 conifguration (in Hex) :
50FFE8BF
Please input your DDR3_EMIF_SDRAM_CONFIG conifguration (in Hex) :
61A053B2
Your input EMIF Timing configuration --
DDR3_EMIF_SDRAM_TIM_1 :         0xAAAD4DB
DDR3_EMIF_SDRAM_TIM_2 :         0x248F7FDA
DDR3_EMIF_SDRAM_TIM_3 :         0x50FFE8BF
DDR3_EMIF_SDRAM_CONFIG :        0x61A053B2

Please Enter the PHY_INVERT_CLKOUT value (0 or 1) from the spreadsheet :
1
Please Enter the Seed RD_DQS_SLAVE_RATIO Value in Hex to search the RD DQS Ratio Window :
40
Please Enter the Seed FIFO_WE_SLAVE_RATIO Value in Hex to search the RD DQS Gate Window :
128
Please Enter the Seed WR_DQS_SLAVE_RATIO Write DQS Ratio Value in Hex to search the Write DQS Ratio Window :
80
Please Enter the Seed PHY_CTRL_SLAVE_RATIO Value in Hex :
100
The ratio seeds for the DDR3 Software Leveling :
invert_clkout =         0x1
RD_DQS_RATIO_VAL =      0x40
FIFO_WE_SLAVE_RATIO =   0x128
WR_DQS_SLAVE_RATIO =    0x80
PHY_CTRL_SLAVE_RATIO =  0x100

        The Slave Ratio Search Program Values are...
***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x0
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x0
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x0
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0x0
***************************************************************
rd_dqs_range = 0
fifo_we_range = 0
wr_dqs_range = 0
wr_data_range = 0

Optimal values have been found!!

***************************************************************
DATA_PHY_RD_DQS_SLAVE_RATIO is :0x0
DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x0
DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x0
DATA_PHY_WR_DATA_SLAVE_RATIO is : 0x0
***************************************************************

===== END OF TEST =====
DDR3 software leveling done!