[U-Boot] [PATCH] muas3001: added 64MB SDRAM autodetection.

Heiko Schocher hs at denx.de
Mon Sep 8 10:19:36 CEST 2008


[PATCH] muas3001: added 64MB SDRAM autodetection.

Signed-off-by: Heiko Schocher <hs at denx.de>
---
 board/muas3001/muas3001.c  |   14 ++++++++++++--
 include/configs/muas3001.h |   16 +++++++++++-----
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/board/muas3001/muas3001.c b/board/muas3001/muas3001.c
index 49aed03..0ec451f 100644
--- a/board/muas3001/muas3001.c
+++ b/board/muas3001/muas3001.c
@@ -253,8 +253,10 @@ phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
-
 	long psize;
+#ifndef CFG_RAMBOOT
+	long sizelittle, sizebig;
+#endif

 	memctl->memc_psrt = CFG_PSRT;
 	memctl->memc_mptpr = CFG_MPTPR;
@@ -262,8 +264,16 @@ phys_size_t initdram (int board_type)
 #ifndef CFG_RAMBOOT
 	/* 60x SDRAM setup:
 	 */
-	psize = try_init (memctl, CFG_PSDMR, CFG_OR1,
+	sizelittle = try_init (memctl, CFG_PSDMR_LITTLE, CFG_OR1_LITTLE,
+						  (uchar *) CFG_SDRAM_BASE);
+	sizebig = try_init (memctl, CFG_PSDMR_BIG, CFG_OR1_BIG,
 						  (uchar *) CFG_SDRAM_BASE);
+	if (sizelittle < sizebig) {
+		psize = sizebig;
+	} else {
+		psize = try_init (memctl, CFG_PSDMR_LITTLE, CFG_OR1_LITTLE,
+						  (uchar *) CFG_SDRAM_BASE);
+	}
 #endif /* CFG_RAMBOOT */

 	icache_enable ();
diff --git a/include/configs/muas3001.h b/include/configs/muas3001.h
index 77e1158..5d157b6 100644
--- a/include/configs/muas3001.h
+++ b/include/configs/muas3001.h
@@ -331,8 +331,7 @@

 /* Bank 1 - 60x bus SDRAM
  */
-#define SDRAM_MAX_SIZE	0x08000000	/* max. 128 MB		*/
-#define CFG_GLOBAL_SDRAM_LIMIT	(128 << 20)	/* less than 128 MB */
+#define CFG_GLOBAL_SDRAM_LIMIT	(256 << 20)	/* less than 256 MB */

 #define CFG_MPTPR       0x2800

@@ -348,16 +347,23 @@
 			 BRx_MS_SDRAM_P                 |\
 			 BRx_V)

-#define CFG_OR1_PRELIM	CFG_OR1
+#define CFG_OR1_PRELIM	CFG_OR1_LITTLE

 /* SDRAM initialization values
 */
-#define CFG_OR1    ((~(CFG_GLOBAL_SDRAM_LIMIT-1) & ORxS_SDAM_MSK) |\
+#define CFG_OR1_LITTLE	((~(CFG_GLOBAL_SDRAM_LIMIT-1) & ORxS_SDAM_MSK) |\
 			 ORxS_BPD_4                     |\
 			 ORxS_ROWST_PBI1_A7		|\
 			 ORxS_NUMR_12)

-#define CFG_PSDMR	0x004b36a3
+#define CFG_PSDMR_LITTLE	0x004b36a3
+
+#define CFG_OR1_BIG	((~(CFG_GLOBAL_SDRAM_LIMIT-1) & ORxS_SDAM_MSK) |\
+			 ORxS_BPD_4                     |\
+			 ORxS_ROWST_PBI1_A4		|\
+			 ORxS_NUMR_12)
+
+#define CFG_PSDMR_BIG		0x014f36a3

 /* IO on CS4 initialization values
 */
-- 
1.5.6.1

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list