
On Monday 03 November 2008, 조기성 wrote:
I create My own board port(MFT board) . create configuration header and init.S But In the sdram.c(sdram_init->get_ram_size is 4 thus )func is failed , sdram is not founded . I think init.S is something wrong or CFG_MONITOR_BASE is wrong ... .
maybe you can point me to the right direction.
It's my board init.S
Your init.S is not optimal but at least not the reason for the problem. You are programming a 256MB TLB entry for SDRAM. This is more than enough for your 128MB. You should fix this at some time but it not the problem right now. CFG_MONITOR_BASE is also most likely not the problem.
<snip>
My SDRAM is 128MB mode 3, 13x10(4) And use external DDR_SDRAM Bank_0(BANKSEL_0)
OK.
<snip>
/*-----------------------------------------------------------------------
- DDR SDRAM
*----------------------------------------------------------------------*/ #undef CONFIG_SPD_EEPROM /* Don't use SPD EEPROM for setup */ #define CONFIG_SDRAM_BANK0 1 /* init onboard DDR SDRAM bank 0*/ #define CFG_SDRAM0_TR0 0x410A4012 #undef CONFIG_SDRAM_ECC /* enable ECC support */
#if 1 #define CFG_SDRAM_TABLE { \ {(128 << 20), 13, 0x000A4001}, /* 128MB mode 3, 13x10(4)*/ \ {(128 << 20), 12, 0x000A2001}, /* 128MB mode 2, 13x10(4)*/ \ {(64 << 20), 13, 0x00084001}, /* 64MB mode 3, 13x9(4) */ \ {(64 << 20), 12, 0x00082001}, } /* 64MB mode 2, 13x9(4) *
Why do you define so many entries in this table? One (128MB mode 3) should be enough for you. If get_ram_size() doesn't return 128MB in this init function then you need to check whether you have a problems with the timings. Use a debugger (or test routines) to see if some bits fail etc.
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================