summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiko Schocher <hs@denx.de>2008-09-08 10:19:36 +0200
committerWolfgang Denk <wd@denx.de>2008-09-10 10:47:24 +0200
commita55d074dac24dc941f1afb5b4e94b1509bfdda4e (patch)
treed349a124057c8bf3c207a333776635088bc6b7c3
parent52bacb9879e14e39dbb523c90981698927767a7f (diff)
downloadu-boot-imx-a55d074dac24dc941f1afb5b4e94b1509bfdda4e.zip
u-boot-imx-a55d074dac24dc941f1afb5b4e94b1509bfdda4e.tar.gz
u-boot-imx-a55d074dac24dc941f1afb5b4e94b1509bfdda4e.tar.bz2
muas3001: added 64MB SDRAM autodetection.
Signed-off-by: Heiko Schocher <hs@denx.de>
-rw-r--r--board/muas3001/muas3001.c14
-rw-r--r--include/configs/muas3001.h16
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
*/