@ -47,58 +47,47 @@ void dram_init_banksize(void)
# ifdef CONFIG_SPL_BUILD
static void data_macro_config ( int dataMacroNum )
{
struct ddr_data data ;
data . datardsratio0 = ( ( DDR2_RD_DQS < < 30 ) | ( DDR2_RD_DQS < < 20 )
| ( DDR2_RD_DQS < < 10 ) | ( DDR2_RD_DQS < < 0 ) ) ;
data . datardsratio1 = DDR2_RD_DQS > > 2 ;
data . datawdsratio0 = ( ( DDR2_WR_DQS < < 30 ) | ( DDR2_WR_DQS < < 20 )
| ( DDR2_WR_DQS < < 10 ) | ( DDR2_WR_DQS < < 0 ) ) ;
data . datawdsratio1 = DDR2_WR_DQS > > 2 ;
data . datawiratio0 = ( ( DDR2_PHY_WRLVL < < 30 ) | ( DDR2_PHY_WRLVL < < 20 )
| ( DDR2_PHY_WRLVL < < 10 ) | ( DDR2_PHY_WRLVL < < 0 ) ) ;
data . datawiratio1 = DDR2_PHY_WRLVL > > 2 ;
data . datagiratio0 = ( ( DDR2_PHY_GATELVL < < 30 ) | ( DDR2_PHY_GATELVL < < 20 )
| ( DDR2_PHY_GATELVL < < 10 ) | ( DDR2_PHY_GATELVL < < 0 ) ) ;
data . datagiratio1 = DDR2_PHY_GATELVL > > 2 ;
data . datafwsratio0 = ( ( DDR2_PHY_FIFO_WE < < 30 ) | ( DDR2_PHY_FIFO_WE < < 20 )
| ( DDR2_PHY_FIFO_WE < < 10 ) | ( DDR2_PHY_FIFO_WE < < 0 ) ) ;
data . datafwsratio1 = DDR2_PHY_FIFO_WE > > 2 ;
data . datawrsratio0 = ( ( DDR2_PHY_WR_DATA < < 30 ) | ( DDR2_PHY_WR_DATA < < 20 )
| ( DDR2_PHY_WR_DATA < < 10 ) | ( DDR2_PHY_WR_DATA < < 0 ) ) ;
data . datawrsratio1 = DDR2_PHY_WR_DATA > > 2 ;
data . datadldiff0 = PHY_DLL_LOCK_DIFF ;
config_ddr_data ( dataMacroNum , & data ) ;
}
static void cmd_macro_config ( void )
{
struct cmd_control cmd ;
cmd . cmd0csratio = DDR2_RATIO ;
cmd . cmd0csforce = CMD_FORCE ;
cmd . cmd0csdelay = CMD_DELAY ;
cmd . cmd0dldiff = DDR2_DLL_LOCK_DIFF ;
cmd . cmd0iclkout = DDR2_INVERT_CLKOUT ;
cmd . cmd1csratio = DDR2_RATIO ;
cmd . cmd1csforce = CMD_FORCE ;
cmd . cmd1csdelay = CMD_DELAY ;
cmd . cmd1dldiff = DDR2_DLL_LOCK_DIFF ;
cmd . cmd1iclkout = DDR2_INVERT_CLKOUT ;
cmd . cmd2csratio = DDR2_RATIO ;
cmd . cmd2csforce = CMD_FORCE ;
cmd . cmd2csdelay = CMD_DELAY ;
cmd . cmd2dldiff = DDR2_DLL_LOCK_DIFF ;
cmd . cmd2iclkout = DDR2_INVERT_CLKOUT ;
config_cmd_ctrl ( & cmd ) ;
}
static const struct ddr_data ddr2_data = {
. datardsratio0 = ( ( DDR2_RD_DQS < < 30 ) | ( DDR2_RD_DQS < < 20 )
| ( DDR2_RD_DQS < < 10 ) | ( DDR2_RD_DQS < < 0 ) ) ,
. datardsratio1 = DDR2_RD_DQS > > 2 ,
. datawdsratio0 = ( ( DDR2_WR_DQS < < 30 ) | ( DDR2_WR_DQS < < 20 )
| ( DDR2_WR_DQS < < 10 ) | ( DDR2_WR_DQS < < 0 ) ) ,
. datawdsratio1 = DDR2_WR_DQS > > 2 ,
. datawiratio0 = ( ( DDR2_PHY_WRLVL < < 30 ) | ( DDR2_PHY_WRLVL < < 20 )
| ( DDR2_PHY_WRLVL < < 10 ) | ( DDR2_PHY_WRLVL < < 0 ) ) ,
. datawiratio1 = DDR2_PHY_WRLVL > > 2 ,
. datagiratio0 = ( ( DDR2_PHY_GATELVL < < 30 ) | ( DDR2_PHY_GATELVL < < 20 )
| ( DDR2_PHY_GATELVL < < 10 ) | ( DDR2_PHY_GATELVL < < 0 ) ) ,
. datagiratio1 = DDR2_PHY_GATELVL > > 2 ,
. datafwsratio0 = ( ( DDR2_PHY_FIFO_WE < < 30 ) | ( DDR2_PHY_FIFO_WE < < 20 )
| ( DDR2_PHY_FIFO_WE < < 10 ) | ( DDR2_PHY_FIFO_WE < < 0 ) ) ,
. datafwsratio1 = DDR2_PHY_FIFO_WE > > 2 ,
. datawrsratio0 = ( ( DDR2_PHY_WR_DATA < < 30 ) | ( DDR2_PHY_WR_DATA < < 20 )
| ( DDR2_PHY_WR_DATA < < 10 ) | ( DDR2_PHY_WR_DATA < < 0 ) ) ,
. datawrsratio1 = DDR2_PHY_WR_DATA > > 2 ,
. datadldiff0 = PHY_DLL_LOCK_DIFF ,
} ;
static const struct cmd_control ddr2_cmd_ctrl_data = {
. cmd0csratio = DDR2_RATIO ,
. cmd0csforce = CMD_FORCE ,
. cmd0csdelay = CMD_DELAY ,
. cmd0dldiff = DDR2_DLL_LOCK_DIFF ,
. cmd0iclkout = DDR2_INVERT_CLKOUT ,
. cmd1csratio = DDR2_RATIO ,
. cmd1csforce = CMD_FORCE ,
. cmd1csdelay = CMD_DELAY ,
. cmd1dldiff = DDR2_DLL_LOCK_DIFF ,
. cmd1iclkout = DDR2_INVERT_CLKOUT ,
. cmd2csratio = DDR2_RATIO ,
. cmd2csforce = CMD_FORCE ,
. cmd2csdelay = CMD_DELAY ,
. cmd2dldiff = DDR2_DLL_LOCK_DIFF ,
. cmd2iclkout = DDR2_INVERT_CLKOUT ,
} ;
static void config_vtp ( void )
{
@ -156,18 +145,16 @@ static void config_emif_ddr2(void)
void config_ddr ( void )
{
int data_macro_0 = 0 ;
int data_macro_1 = 1 ;
struct ddr_ioctrl ioctrl ;
enable_emif_clocks ( ) ;
config_vtp ( ) ;
cmd_macro_config ( ) ;
config_cmd_ctrl ( & ddr2_cmd_ctrl_data ) ;
data_macro_config ( data_macro_0 ) ;
data_macro_config ( data_macro_1 ) ;
config_ddr_data ( 0 , & ddr2_data ) ;
config_ddr_data ( 1 , & ddr2_data ) ;
writel ( PHY_RANK0_DELAY , & ddrregs - > dt0rdelays0 ) ;
writel ( PHY_RANK0_DELAY , & ddrregs - > dt1rdelays0 ) ;