powerpc/mpc8xxx: Move DDR RCW overriding to common code
DDR RCW varies at different speeds. It is common for all platform. Move it out from corenet_ds. Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
2bba85f412
commit
cda1de21de
|
@ -272,6 +272,7 @@ unsigned int populate_memctl_options(int all_DIMMs_registered,
|
||||||
char buffer[HWCONFIG_BUFFER_SIZE];
|
char buffer[HWCONFIG_BUFFER_SIZE];
|
||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
const dynamic_odt_t *pdodt = odt_unknown;
|
const dynamic_odt_t *pdodt = odt_unknown;
|
||||||
|
ulong ddr_freq;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extract hwconfig from environment since we have not properly setup
|
* Extract hwconfig from environment since we have not properly setup
|
||||||
|
@ -716,6 +717,20 @@ unsigned int populate_memctl_options(int all_DIMMs_registered,
|
||||||
if (pdimm[0].n_ranks == 4)
|
if (pdimm[0].n_ranks == 4)
|
||||||
popts->quad_rank_present = 1;
|
popts->quad_rank_present = 1;
|
||||||
|
|
||||||
|
ddr_freq = get_ddr_freq(0) / 1000000;
|
||||||
|
if (popts->registered_dimm_en) {
|
||||||
|
popts->rcw_override = 1;
|
||||||
|
popts->rcw_1 = 0x000a5a00;
|
||||||
|
if (ddr_freq <= 800)
|
||||||
|
popts->rcw_2 = 0x00000000;
|
||||||
|
else if (ddr_freq <= 1066)
|
||||||
|
popts->rcw_2 = 0x00100000;
|
||||||
|
else if (ddr_freq <= 1333)
|
||||||
|
popts->rcw_2 = 0x00200000;
|
||||||
|
else
|
||||||
|
popts->rcw_2 = 0x00300000;
|
||||||
|
}
|
||||||
|
|
||||||
fsl_ddr_board_options(popts, pdimm, ctrl_num);
|
fsl_ddr_board_options(popts, pdimm, ctrl_num);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -223,20 +223,6 @@ void fsl_ddr_board_options(memctl_options_t *popts,
|
||||||
|
|
||||||
/* DHC_EN =1, ODT = 60 Ohm */
|
/* DHC_EN =1, ODT = 60 Ohm */
|
||||||
popts->ddr_cdr1 = DDR_CDR1_DHC_EN;
|
popts->ddr_cdr1 = DDR_CDR1_DHC_EN;
|
||||||
|
|
||||||
/* override SPD values. rcw_2 should vary at differnt speed */
|
|
||||||
if (pdimm[0].registered_dimm == 1) {
|
|
||||||
popts->rcw_override = 1;
|
|
||||||
popts->rcw_1 = 0x000a5a00;
|
|
||||||
if (ddr_freq <= 800)
|
|
||||||
popts->rcw_2 = 0x00000000;
|
|
||||||
else if (ddr_freq <= 1066)
|
|
||||||
popts->rcw_2 = 0x00100000;
|
|
||||||
else if (ddr_freq <= 1333)
|
|
||||||
popts->rcw_2 = 0x00200000;
|
|
||||||
else
|
|
||||||
popts->rcw_2 = 0x00300000;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
phys_size_t initdram(int board_type)
|
phys_size_t initdram(int board_type)
|
||||||
|
|
Loading…
Reference in New Issue