From a55d074dac24dc941f1afb5b4e94b1509bfdda4e Mon Sep 17 00:00:00 2001 From: Heiko Schocher Date: Mon, 8 Sep 2008 10:19:36 +0200 Subject: [PATCH] muas3001: added 64MB SDRAM autodetection. Signed-off-by: Heiko Schocher --- 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 */