Pass dimm parameters to populate populate controller options

Because some dimm parameters like n_ranks needs to be used with the board
frequency to choose the board parameters like clk_adjust etc. in the
board_specific_paramesters table of the board ddr file, we need to pass
the dimm parameters to the board file.

* move ddr dimm parameters header file from /cpu to /include directory.
* add ddr dimm parameters to populate board specific options.
* Fix fsl_ddr_board_options() for all the 8xxx boards which call this function.

Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
This commit is contained in:
Haiying Wang 2008-10-03 12:36:55 -04:00 committed by Wolfgang Denk
parent dbbbb3abef
commit dfb49108e4
25 changed files with 91 additions and 24 deletions

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
@ -37,7 +38,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) static void get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
{ {
@ -36,7 +37,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address)
@ -40,7 +41,9 @@ fsl_ddr_get_spd(ddr1_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for CPO: * Factors to consider for CPO:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address)
@ -36,7 +37,9 @@ void fsl_ddr_get_spd(ddr1_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
@ -37,7 +38,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
@ -37,7 +38,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address)
@ -36,7 +37,9 @@ void fsl_ddr_get_spd(ddr1_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address)
@ -40,7 +41,9 @@ fsl_ddr_get_spd(ddr1_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for CPO: * Factors to consider for CPO:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
@ -38,7 +39,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) static void get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
{ {
@ -38,7 +39,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
@ -36,7 +37,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
@ -45,7 +46,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address)
@ -40,7 +41,9 @@ fsl_ddr_get_spd(ddr1_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for CPO: * Factors to consider for CPO:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address)
@ -40,7 +41,9 @@ fsl_ddr_get_spd(ddr1_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for CPO: * Factors to consider for CPO:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address)
@ -40,7 +41,9 @@ fsl_ddr_get_spd(ddr1_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for CPO: * Factors to consider for CPO:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
@ -37,7 +38,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address)
@ -40,7 +41,9 @@ fsl_ddr_get_spd(ddr1_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for CPO: * Factors to consider for CPO:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
@ -45,7 +46,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
@ -37,7 +38,9 @@ void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for clock adjust: * Factors to consider for clock adjust:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address)
@ -40,7 +41,9 @@ fsl_ddr_get_spd(ddr1_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for CPO: * Factors to consider for CPO:

View File

@ -10,6 +10,7 @@
#include <i2c.h> #include <i2c.h>
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
static void static void
get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address) get_spd(ddr1_spd_eeprom_t *spd, unsigned char i2c_address)
@ -40,7 +41,9 @@ fsl_ddr_get_spd(ddr1_spd_eeprom_t *ctrl_dimms_spd,
} }
} }
void fsl_ddr_board_options(memctl_options_t *popts, unsigned int ctrl_num) void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num)
{ {
/* /*
* Factors to consider for CPO: * Factors to consider for CPO:

View File

@ -10,8 +10,8 @@
#define FSL_DDR_MAIN_H #define FSL_DDR_MAIN_H
#include <asm/fsl_ddr_sdram.h> #include <asm/fsl_ddr_sdram.h>
#include <asm/fsl_ddr_dimm_params.h>
#include "ddr1_2_dimm_params.h"
#include "common_timing_params.h" #include "common_timing_params.h"
/* /*
@ -71,6 +71,7 @@ compute_lowest_common_dimm_parameters(const dimm_params_t *dimm_params,
unsigned int number_of_dimms); unsigned int number_of_dimms);
extern unsigned int populate_memctl_options(int all_DIMMs_registered, extern unsigned int populate_memctl_options(int all_DIMMs_registered,
memctl_options_t *popts, memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num); unsigned int ctrl_num);
extern unsigned int mclk_to_picos(unsigned int mclk); extern unsigned int mclk_to_picos(unsigned int mclk);

View File

@ -319,7 +319,8 @@ fsl_ddr_compute(fsl_ddr_info_t *pinfo, unsigned int start_step)
*/ */
populate_memctl_options( populate_memctl_options(
timing_params[i].all_DIMMs_registered, timing_params[i].all_DIMMs_registered,
&pinfo->memctl_opts[i], i); &pinfo->memctl_opts[i],
pinfo->dimm_params[i], i);
} }
case STEP_ASSIGN_ADDRESSES: case STEP_ASSIGN_ADDRESSES:

View File

@ -13,10 +13,12 @@
/* Board-specific functions defined in each board's ddr.c */ /* Board-specific functions defined in each board's ddr.c */
extern void fsl_ddr_board_options(memctl_options_t *popts, extern void fsl_ddr_board_options(memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num); unsigned int ctrl_num);
unsigned int populate_memctl_options(int all_DIMMs_registered, unsigned int populate_memctl_options(int all_DIMMs_registered,
memctl_options_t *popts, memctl_options_t *popts,
dimm_params_t *pdimm,
unsigned int ctrl_num) unsigned int ctrl_num)
{ {
unsigned int i; unsigned int i;
@ -191,7 +193,7 @@ unsigned int populate_memctl_options(int all_DIMMs_registered,
* controllers. * controllers.
*/ */
fsl_ddr_board_options(popts, ctrl_num); fsl_ddr_board_options(popts, pdimm, ctrl_num);
return 0; return 0;
} }