|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright 2008 Freescale Semiconductor, Inc.
|
|
|
+ * Copyright 2008-2011 Freescale Semiconductor, Inc.
|
|
|
*
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
* modify it under the terms of the GNU General Public License
|
|
@@ -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, temp3;
|
|
|
+ unsigned int temp1, temp2;
|
|
|
unsigned int additive_latency = 0;
|
|
|
#if !defined(CONFIG_FSL_DDR3)
|
|
|
const unsigned int mclk_ps = get_memory_clk_period_ps();
|
|
@@ -215,18 +215,14 @@ compute_lowest_common_dimm_parameters(const dimm_params_t *dimm_params,
|
|
|
}
|
|
|
|
|
|
outpdimm->all_DIMMs_registered = 0;
|
|
|
+ outpdimm->all_DIMMs_unbuffered = 0;
|
|
|
if (temp1 && !temp2) {
|
|
|
outpdimm->all_DIMMs_registered = 1;
|
|
|
- }
|
|
|
-
|
|
|
- outpdimm->all_DIMMs_unbuffered = 0;
|
|
|
- if (!temp1 && temp2) {
|
|
|
+ printf("Detected RDIMM(s)\n");
|
|
|
+ } else if (!temp1 && temp2) {
|
|
|
outpdimm->all_DIMMs_unbuffered = 1;
|
|
|
- }
|
|
|
-
|
|
|
- /* CHECKME: */
|
|
|
- if (!outpdimm->all_DIMMs_registered
|
|
|
- && !outpdimm->all_DIMMs_unbuffered) {
|
|
|
+ printf("Detected UDIMM(s)\n");
|
|
|
+ } else {
|
|
|
printf("ERROR: Mix of registered buffered and unbuffered "
|
|
|
"DIMMs detected!\n");
|
|
|
}
|
|
@@ -237,7 +233,7 @@ compute_lowest_common_dimm_parameters(const dimm_params_t *dimm_params,
|
|
|
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;
|
|
|
+ temp1 = 1;
|
|
|
break;
|
|
|
}
|
|
|
}
|