Hello Prafulla, Prafulla Wadaskar wrote: > > >> -----Original Message----- >> From: Heiko Schocher [mailto:[email protected]] >> Sent: Thursday, September 30, 2010 9:10 PM >> To: Prafulla Wadaskar >> Cc: [email protected]; Ashish Karkare; Prabhanjan Sarnaik >> Subject: Re: [U-Boot] [PATCH] Kirkwood: dram_init is moved to dram.c >> >> 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? > > Yes, those are consecutive without gaps on all boards so far. > But one can configure with gaps too, for ex. If any new board uses two chips > with smaller size then it is possibility of gap insertion. > > In that case how it should be?
Good question ... for this case we must adapt in arch/arm/lib/board.c addr = CONFIG_SYS_SDRAM_BASE + gd->ram_size; But no idea, where to put u-boot ... at the end of the first bank? at the end of the last bank? 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

