Skip to contentSkip to conversation

t2080qds/ddr: update ddr parameters

PATCH Superseded Shengzhou Liu 2 participants 2 messages Dec 9, 2013

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 t2080qds/ddr: update ddr parameters

- optimize ddr parameters for whole frequency range from 1500MT/s to 2140MT/s.
- remove unused patameters: 'cpo', 'wrdata delay', '2T', which is unrelated to DDR3/3L on t2080qds.
- remove unused rdimm code(only udimm is supported on t2080qds board).

---
Against master branch of git://git.denx.de/u-boot-mpc85xx.git
v2: throw an error in case of rDIMM.

 board/freescale/t2080qds/ddr.c | 18 ++----------
 board/freescale/t2080qds/ddr.h | 64 +++++++++---------------------------------
 2 files changed, 17 insertions(+), 65 deletions(-)
board/freescale/t2080qds/ddr.c +3 -15
index 5db5d21..d877731 100644
@@ -24,24 +24,19 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 	const struct board_specific_parameters *pbsp, *pbsp_highest = NULL;
 	ulong ddr_freq;
 
-	if (ctrl_num > 2) {
+	if (ctrl_num > 1) {
 		printf("Not supported controller number %d\n", ctrl_num);
 		return;
 	}
 	if (!pdimm->n_ranks)
 		return;
 
-	/*
-	 * we use identical timing for all slots. If needed, change the code
-	 * to  pbsp = rdimms[ctrl_num] or pbsp = udimms[ctrl_num];
-	 */
 	if (popts->registered_dimm_en)
-		pbsp = rdimms[0];
+		puts("ERROR: rDIMM is not supported on t2080qds board\n");
 	else
 		pbsp = udimms[0];
 
-
-	/* Get clk_adjust, cpo, write_data_delay,2T, according to the board ddr
+	/* Get clk_adjust, wrlvl_start, wrlvl_ctl, according to the board ddr
 	 * freqency and n_banks specified in board_specific_parameters table.
 	 */
 	ddr_freq = get_ddr_freq(0) / 1000000;
@@ -49,14 +44,10 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 		if (pbsp->n_ranks == pdimm->n_ranks &&
 		    (pdimm->rank_density >> 30) >= pbsp->rank_gb) {
 			if (ddr_freq <= pbsp->datarate_mhz_high) {
-				popts->cpo_override = pbsp->cpo;
-				popts->write_data_delay =
-					pbsp->write_data_delay;
 				popts->clk_adjust = pbsp->clk_adjust;
 				popts->wrlvl_start = pbsp->wrlvl_start;
 				popts->wrlvl_ctl_2 = pbsp->wrlvl_ctl_2;
 				popts->wrlvl_ctl_3 = pbsp->wrlvl_ctl_3;
-				popts->twot_en = pbsp->force_2t;
 				goto found;
 			}
 			pbsp_highest = pbsp;
@@ -69,13 +60,10 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 		printf("for data rate %lu MT/s\n", ddr_freq);
 		printf("Trying to use the highest speed (%u) parameters\n",
 		       pbsp_highest->datarate_mhz_high);
-		popts->cpo_override = pbsp_highest->cpo;
-		popts->write_data_delay = pbsp_highest->write_data_delay;
 		popts->clk_adjust = pbsp_highest->clk_adjust;
 		popts->wrlvl_start = pbsp_highest->wrlvl_start;
 		popts->wrlvl_ctl_2 = pbsp->wrlvl_ctl_2;
 		popts->wrlvl_ctl_3 = pbsp->wrlvl_ctl_3;
-		popts->twot_en = pbsp_highest->force_2t;
 	} else {
 		panic("DIMM is not supported by this board");
 	}
board/freescale/t2080qds/ddr.h +14 -50

81 lines not on this page · raw message

Signature · 1 line
1.8.0
#1 lore raw

PATCH v2 1/1 t2080qds/ddr: update ddr parameters

Quoted 4 lines · Shengzhou Liu

- optimize ddr parameters for whole frequency range from 1500MT/s to 2140MT/s.
- remove unused patameters: 'cpo', 'wrdata delay', '2T', which is unrelated to DDR3/3L on t2080qds.
- remove unused rdimm code(only udimm is supported on t2080qds board).

We use upper case for RDIMM and UDIMM in commit message and comments. They mean Registered Dual In-line Memory Module, and Unbuffered Dual In-line Memory Module.

Quoted 23 lines

---
Against master branch of git://git.denx.de/u-boot-mpc85xx.git
v2: throw an error in case of rDIMM.

 board/freescale/t2080qds/ddr.c | 18 ++----------
 board/freescale/t2080qds/ddr.h | 64 +++++++++---------------------------------
 2 files changed, 17 insertions(+), 65 deletions(-)
board/freescale/t2080qds/ddr.c +1 -1
index 5db5d21..d877731 100644
@@ -24,24 +24,19 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 	const struct board_specific_parameters *pbsp, *pbsp_highest = NULL;
 	ulong ddr_freq;
 
-	if (ctrl_num > 2) {
+	if (ctrl_num > 1) {
 		printf("Not supported controller number %d\n", ctrl_num);
 		return;
 	}

board/freescale/t2080qds/ddr.c void fsl_ddr_board_options(memctl_options_t *popts, · line 35

Quoted 10 lines
board/freescale/t2080qds/ddr.c +1 -5
 	if (!pdimm->n_ranks)
 		return;
 
-	/*
-	 * we use identical timing for all slots. If needed, change the code
-	 * to  pbsp = rdimms[ctrl_num] or pbsp = udimms[ctrl_num];
-	 */
 	if (popts->registered_dimm_en)
-		pbsp = rdimms[0];
+		puts("ERROR: rDIMM is not supported on t2080qds board\n");

Don't use rDIMM, use RDIMM instead. I suggest you to consult board designer. I don't see why RDIMM should be dropped for this board.

York