On Jun 6, 2011, at 8:42 PM, York Sun wrote:

> We used to have fixed parameters for soldered DDR chips. This patch introduces
> CONFIG_SYS_DDR_RAW_TIMING to enable calculation based on timing data from DDR
> chip datasheet, implemneted in board-specific files or header files.
> 
> Signed-off-by: York Sun <york...@freescale.com>
> ---
> README                                |    6 ++++++
> arch/powerpc/cpu/mpc85xx/cpu.c        |    4 +++-
> arch/powerpc/cpu/mpc8xxx/ddr/Makefile |   13 +++++++++++--
> arch/powerpc/cpu/mpc8xxx/ddr/ddr.h    |    9 +++++++++
> arch/powerpc/cpu/mpc8xxx/ddr/main.c   |   12 ++++++++++++
> 5 files changed, 41 insertions(+), 3 deletions(-)
> 
> diff --git a/README b/README
> index 8bb9c8d..c1ddfd0 100644
> --- a/README
> +++ b/README
> @@ -2930,6 +2930,12 @@ Low Level (hardware related) configuration options:
>               one, specify here. Note that the value must resolve
>               to something your driver can deal with.
> 
> +- CONFIG_SYS_DDR_RAW_TIMING
> +             Get DDR timing information from other than SPD. Common with
> +             soldered DDR chips onboard without SPD. DDR raw timing
> +             parameters are extracted from datasheet and hard-coded into
> +             header files or board specific files.
> +

How is this not just !CONFIG_SPD ?

> - CONFIG_SYS_83XX_DDR_USES_CS0
>               Only for 83xx systems. If specified, then DDR should
>               be configured using CS0 and CS1 instead of CS2 and CS3.

> 
> 
> diff --git a/arch/powerpc/cpu/mpc8xxx/ddr/ddr.h 
> b/arch/powerpc/cpu/mpc8xxx/ddr/ddr.h
> index 1e866fe..220fdc4 100644
> --- a/arch/powerpc/cpu/mpc8xxx/ddr/ddr.h
> +++ b/arch/powerpc/cpu/mpc8xxx/ddr/ddr.h
> @@ -14,6 +14,7 @@
> 
> #include "common_timing_params.h"
> 
> +#if defined(CONFIG_DDR_SPD) || defined(CONFIG_SPD_EEPROM)
> /*
>  * Bind the main DDR setup driver's generic names
>  * to this specific DDR technology.
> @@ -25,6 +26,7 @@ compute_dimm_parameters(const generic_spd_eeprom_t *spd,
> {
>       return ddr_compute_dimm_parameters(spd, pdimm, dimm_number);
> }
> +#endif
> 
> /*
>  * Data Structures
> @@ -80,4 +82,11 @@ extern void check_interleaving_options(fsl_ddr_info_t 
> *pinfo);
> extern unsigned int mclk_to_picos(unsigned int mclk);
> extern unsigned int get_memory_clk_period_ps(void);
> extern unsigned int picos_to_mclk(unsigned int picos);
> +
> +/* board specific function */
> +#ifdef CONFIG_SYS_DDR_RAW_TIMING
> +int fsl_ddr_get_dimm_params(dimm_params_t *pdimm,
> +                     unsigned int controller_number,
> +                     unsigned int dimm_number);

where is this code?

> +#endif       /* CONFIG_SYS_DDR_RAW_TIMING */
> #endif
> diff --git a/arch/powerpc/cpu/mpc8xxx/ddr/main.c 
> b/arch/powerpc/cpu/mpc8xxx/ddr/main.c
> index 62a73dd..3c49fa9 100644
> --- a/arch/powerpc/cpu/mpc8xxx/ddr/main.c
> +++ b/arch/powerpc/cpu/mpc8xxx/ddr/main.c
> @@ -325,6 +325,7 @@ fsl_ddr_compute(fsl_ddr_info_t *pinfo, unsigned int 
> start_step,
> 
>       switch (start_step) {
>       case STEP_GET_SPD:
> +#if defined(CONFIG_DDR_SPD) || defined(CONFIG_SPD_EEPROM)
>               /* STEP 1:  Gather all DIMM SPD data */
>               for (i = 0; i < CONFIG_NUM_DDR_CONTROLLERS; i++) {
>                       fsl_ddr_get_spd(pinfo->spd_installed_dimms[i], i);
> @@ -356,6 +357,17 @@ fsl_ddr_compute(fsl_ddr_info_t *pinfo, unsigned int 
> start_step,
>                       }
>               }
> 
> +#else
> +     case STEP_COMPUTE_DIMM_PARMS:
> +             for (i = 0; i < CONFIG_NUM_DDR_CONTROLLERS; i++) {
> +                     for (j = 0; j < CONFIG_DIMM_SLOTS_PER_CTLR; j++) {
> +                             dimm_params_t *pdimm =
> +                                     &(pinfo->dimm_params[i][j]);
> +                             fsl_ddr_get_dimm_params(pdimm, i, j);
> +                     }
> +             }
> +             debug("Filling dimm parameters from board specific file\n");
> +#endif
>       case STEP_COMPUTE_COMMON_PARMS:
>               /*
>                * STEP 3: Compute a common set of timing parameters
> -- 
> 1.7.0.4
> 
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to