]> git.sur5r.net Git - u-boot/blobdiff - arch/powerpc/cpu/mpc8xxx/ddr/lc_common_dimm_params.c
Merge branch 'master' of git://git.denx.de/u-boot-marvell
[u-boot] / arch / powerpc / cpu / mpc8xxx / ddr / lc_common_dimm_params.c
index ce6c148d0966114ffaeae4908ae392bd9efaf2fe..029e566b6b0e725e9d638c4817a627bdeaada377 100644 (file)
@@ -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;