Hello Prafulla,

Prafulla Wadaskar wrote:
> For all Kirkwood boards so far dram_init function is duplicated
> dram_init function is moved to dram.c and relevant code from all
> board specific files removed
> 
> If any board needs specific dram init handling than standard one,
> then, a macro CONFIG_SYS_BOARD_DRAM_INIT should be defined in
> board config header file and the dram_init function can be put
> in board specific source file
> For ex. keymile boards
> 
> Signed-off-by: Prafulla Wadaskar <[email protected]>
> ---
>  arch/arm/cpu/arm926ejs/kirkwood/dram.c          |   22 ++++++++++++++++++++++
>  board/Marvell/guruplug/guruplug.c               |   11 -----------
>  board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c |   11 -----------
>  board/Marvell/openrd_base/openrd_base.c         |   11 -----------
>  board/Marvell/rd6281a/rd6281a.c                 |   11 -----------
>  board/Marvell/sheevaplug/sheevaplug.c           |   11 -----------
>  include/configs/keymile-common.h                |    1 +
>  7 files changed, 23 insertions(+), 55 deletions(-)
> 
> diff --git a/arch/arm/cpu/arm926ejs/kirkwood/dram.c 
> b/arch/arm/cpu/arm926ejs/kirkwood/dram.c
> index 8f2a18a..d929d7a 100644
> --- a/arch/arm/cpu/arm926ejs/kirkwood/dram.c
> +++ b/arch/arm/cpu/arm926ejs/kirkwood/dram.c
> @@ -23,8 +23,11 @@
>   */
>  
>  #include <config.h>
> +#include <common.h>
>  #include <asm/arch/kirkwood.h>
>  
> +DECLARE_GLOBAL_DATA_PTR;
> +
>  #define KW_REG_CPUCS_WIN_BAR(x)              (KW_REGISTER(0x1500) + (x * 
> 0x08))
>  #define KW_REG_CPUCS_WIN_SZ(x)               (KW_REGISTER(0x1504) + (x * 
> 0x08))
>  /*
> @@ -56,3 +59,22 @@ u32 kw_sdram_bs(enum memory_bank bank)
>       result += 0x01000000;
>       return result;
>  }
> +
> +#ifndef CONFIG_SYS_BOARD_DRAM_INIT
> +int dram_init(void)
> +{
> +     int i;
> +#if !defined(CONFIG_SYS_ARM_WITHOUT_RELOC)
> +     gd->ram_size = 0;
> +#endif
> +     for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
> +             gd->bd->bi_dram[i].start = kw_sdram_bar(i);
> +             gd->bd->bi_dram[i].size = kw_sdram_bs(i);
> +#if !defined(CONFIG_SYS_ARM_WITHOUT_RELOC)
> +             gd->ram_size += gd->bd->bi_dram[i].size;

This is only OK, if the memory banks are consecutive without
gaps ... is this true for all boards?

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to