[PATCH] muas3001: added 64MB SDRAM autodetection.

Signed-off-by: Heiko Schocher <[EMAIL PROTECTED]>
---
 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
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to