From a55d074dac24dc941f1afb5b4e94b1509bfdda4e Mon Sep 17 00:00:00 2001
From: Heiko Schocher <hs@denx.de>
Date: Mon, 8 Sep 2008 10:19:36 +0200
Subject: [PATCH] muas3001: added 64MB SDRAM autodetection.

Signed-off-by: Heiko Schocher <hs@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 49aed037c2..0ec451fbd5 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 77e1158770..5d157b6c1e 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
 */
-- 
2.39.5