public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] Kirkwood: dram_init is moved to dram.c
@ 2010-09-30 17:53 Prafulla Wadaskar
  2010-09-30 15:39 ` Heiko Schocher
                   ` (2 more replies)
  0 siblings, 3 replies; 26+ messages in thread
From: Prafulla Wadaskar @ 2010-09-30 17:53 UTC (permalink / raw)
  To: u-boot

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 <prafulla@marvell.com>
---
 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;
+#endif
+	}
+	return 0;
+}
+#endif /* CONFIG_SYS_KWDRAM_INIT */
+
diff --git a/board/Marvell/guruplug/guruplug.c b/board/Marvell/guruplug/guruplug.c
index c028a53..4df4e9b 100644
--- a/board/Marvell/guruplug/guruplug.c
+++ b/board/Marvell/guruplug/guruplug.c
@@ -108,17 +108,6 @@ int board_init(void)
 	return 0;
 }
 
-int dram_init(void)
-{
-	int i;
-
-	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);
-	}
-	return 0;
-}
-
 #ifdef CONFIG_RESET_PHY_R
 void mv_phy_88e1121_init(char *name)
 {
diff --git a/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c b/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
index c959bf8..93d1400 100644
--- a/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
+++ b/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
@@ -110,17 +110,6 @@ int board_init(void)
 	return 0;
 }
 
-int dram_init(void)
-{
-	int i;
-
-	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);
-	}
-	return 0;
-}
-
 #ifdef CONFIG_MV88E61XX_SWITCH
 void reset_phy(void)
 {
diff --git a/board/Marvell/openrd_base/openrd_base.c b/board/Marvell/openrd_base/openrd_base.c
index c00a08a..d006b2d 100644
--- a/board/Marvell/openrd_base/openrd_base.c
+++ b/board/Marvell/openrd_base/openrd_base.c
@@ -113,17 +113,6 @@ int board_init(void)
 	return 0;
 }
 
-int dram_init(void)
-{
-	int i;
-
-	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);
-	}
-	return 0;
-}
-
 #ifdef CONFIG_RESET_PHY_R
 /* Configure and enable MV88E1116 PHY */
 void reset_phy(void)
diff --git a/board/Marvell/rd6281a/rd6281a.c b/board/Marvell/rd6281a/rd6281a.c
index 8713a3c..0d76146 100644
--- a/board/Marvell/rd6281a/rd6281a.c
+++ b/board/Marvell/rd6281a/rd6281a.c
@@ -109,17 +109,6 @@ int board_init(void)
 	return 0;
 }
 
-int dram_init(void)
-{
-	int i;
-
-	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);
-	}
-	return 0;
-}
-
 void mv_phy_88e1116_init(char *name)
 {
 	u16 reg;
diff --git a/board/Marvell/sheevaplug/sheevaplug.c b/board/Marvell/sheevaplug/sheevaplug.c
index 547126a..173a7b8 100644
--- a/board/Marvell/sheevaplug/sheevaplug.c
+++ b/board/Marvell/sheevaplug/sheevaplug.c
@@ -108,17 +108,6 @@ int board_init(void)
 	return 0;
 }
 
-int dram_init(void)
-{
-	int i;
-
-	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);
-	}
-	return 0;
-}
-
 #ifdef CONFIG_RESET_PHY_R
 /* Configure and enable MV88E1116 PHY */
 void reset_phy(void)
diff --git a/include/configs/keymile-common.h b/include/configs/keymile-common.h
index 6c14ca0..62d21f6 100644
--- a/include/configs/keymile-common.h
+++ b/include/configs/keymile-common.h
@@ -85,6 +85,7 @@
 
 #define CONFIG_LOADS_ECHO	1	/* echo on for serial download */
 #define CONFIG_SYS_LOADS_BAUD_CHANGE	1	/* allow baudrate change */
+#define CONFIG_SYS_BOARD_DRAM_INIT	/* Used board specific dram_init */
 
 /*
  * How to get access to the slot ID.  Put this here to make it easy
-- 
1.5.3.3

^ permalink raw reply related	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2010-10-01  8:00 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-30 17:53 [U-Boot] [PATCH] Kirkwood: dram_init is moved to dram.c Prafulla Wadaskar
2010-09-30 15:39 ` Heiko Schocher
2010-10-01  5:59   ` Prafulla Wadaskar
2010-10-01  6:17     ` Heiko Schocher
2010-10-01  8:00       ` Wolfgang Denk
2010-10-01  6:20     ` Albert ARIBAUD
2010-10-01  6:25       ` Prafulla Wadaskar
2010-10-01  7:53     ` Wolfgang Denk
2010-09-30 17:29 ` Wolfgang Denk
2010-10-01  7:23   ` Prafulla Wadaskar
2010-09-30 17:53 ` [U-Boot] [PATCH] kirkwood: added common config file mv-config.h Prafulla Wadaskar
2010-09-30 13:54   ` Rogan Dawes
2010-09-30 14:33     ` Prafulla Wadaskar
2010-09-30 15:26       ` Rogan Dawes
2010-09-30 15:35       ` Albert ARIBAUD
2010-10-01  6:10         ` Prafulla Wadaskar
2010-10-01  6:35           ` Albert ARIBAUD
2010-10-01  6:45             ` Prafulla Wadaskar
2010-09-30 17:54   ` [U-Boot] [PATCH] Kirkwood: Changes specific to ARM relocation support Prafulla Wadaskar
2010-09-30 15:40     ` Heiko Schocher
2010-09-30 16:21       ` Albert ARIBAUD
2010-09-30 17:50         ` Wolfgang Denk
2010-09-30 17:49       ` Wolfgang Denk
2010-09-30 22:06         ` Marek Vasut
2010-10-01  7:21       ` Prafulla Wadaskar
2010-09-30 17:34     ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox