diff options
Diffstat (limited to 'arch/powerpc/cpu/mpc8xxx/ddr/lc_common_dimm_params.c')
| -rw-r--r-- | arch/powerpc/cpu/mpc8xxx/ddr/lc_common_dimm_params.c | 18 | 
1 files changed, 16 insertions, 2 deletions
| diff --git a/arch/powerpc/cpu/mpc8xxx/ddr/lc_common_dimm_params.c b/arch/powerpc/cpu/mpc8xxx/ddr/lc_common_dimm_params.c index ce6c148d0..029e566b6 100644 --- a/arch/powerpc/cpu/mpc8xxx/ddr/lc_common_dimm_params.c +++ b/arch/powerpc/cpu/mpc8xxx/ddr/lc_common_dimm_params.c @@ -76,7 +76,7 @@ compute_lowest_common_dimm_parameters(const dimm_params_t *dimm_params,  				      common_timing_params_t *outpdimm,  				      unsigned int number_of_dimms)  { -	unsigned int i; +	unsigned int i, j;  	unsigned int tCKmin_X_ps = 0;  	unsigned int tCKmax_ps = 0xFFFFFFFF; @@ -98,7 +98,7 @@ compute_lowest_common_dimm_parameters(const dimm_params_t *dimm_params,  	unsigned int tDQSQ_max_ps = 0;  	unsigned int tQHS_ps = 0; -	unsigned int temp1, temp2; +	unsigned int temp1, temp2, temp3;  	unsigned int additive_latency = 0;  #if !defined(CONFIG_FSL_DDR3)  	const unsigned int mclk_ps = get_memory_clk_period_ps(); @@ -231,6 +231,20 @@ compute_lowest_common_dimm_parameters(const dimm_params_t *dimm_params,  				"DIMMs detected!\n");  	} +	temp1 = 0; +	if (outpdimm->all_DIMMs_registered) +		for (j = 0; j < 16; j++) { +			outpdimm->rcw[j] = dimm_params[0].rcw[j]; +			for (i = 1; i < number_of_dimms; i++) +				if (dimm_params[i].rcw[j] != dimm_params[0].rcw[j]) { +					temp3 = 1; +					break; +				} +		} + +	if (temp1 != 0) +		printf("ERROR: Mix different RDIMM detected!\n"); +  #if defined(CONFIG_FSL_DDR3)  	if (compute_cas_latency_ddr3(dimm_params, outpdimm, number_of_dimms))  		return 1; |