t2080qds/ddr: update ddr parameters
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
@@ -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
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
Signed-off-by Shengzhou Liu <[email protected]>---
Against master branch ofgit://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@@ -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
-5if (!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