
Sun,
On Wednesday 15 April 2009, SunNeo wrote:
I tried to add auto-calibration related configuration to my configuation file, but Linux still hangs at the same location. It seems error happened when threads of Linux Kernel tried to access the high 512m memory.
I suggest you debug this further, either by adding some printk's or using a debugger to see where exactly the crash happens.
Just like the Kilauea evb, there is no ECC on my board, and I use the same regisger setting for DDR Controller as Kilauea. Maybe you know, Kilauea uses the "MT47H64M16HR" DDRII SDRAM and only one rank. My board uses the "MT47H256M8THN" and two ranks. So, I changed setting of MB0CF & MB1CF.
When using the 2nd rank you need to change the termination settings as well (SDRAM0_MODT0, SDRAM_MODT1, SDRAM0_CODT). Using the original values from Kilauea is definitely a problem which could lead to all kind of problems.
I think I can confirm all 1024M memory can work well at U-Boot.
Again, you don't really know if the whole memory is working correctly just because you are able to boot to the U-Boot prompt. Intensive memory tests (with and without burst access) are necessary here.
And if I add the parameter "mem=512M" to bootargs, and set "initrd_high" to "20000000", Linux can boot normally.
Understood. I still think that this is a problem with incorrect SDRAM configuration. Take a look at the termination registers mentioned above and configure them correctly.
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 =====================================================================