* Help!Some memory doesn't work on PPC405Ex based board! @ 2009-04-13 12:05 SunNeo 2009-04-14 9:23 ` Stefan Roese 0 siblings, 1 reply; 15+ messages in thread From: SunNeo @ 2009-04-13 12:05 UTC (permalink / raw) To: linuxppc-dev [-- Attachment #1: Type: text/plain, Size: 4739 bytes --] Hi, All, I'm porting Linux-2.6.29 on PPC405Ex based board, it's very similar to AMCC "Kilauea" evb. In my board, two 512MB DDRII memory is connected to 2 ranks of the 405Ex CPU. This 1GB memory works well at U-Boot-2009.01, but when I boot Linux-2.6.29, the kernel hangs somewhere. What interesting is, if I configured the system to use only 512MB memory at U-Boot, the Linux can boot normally. The following is some error info I dumped: <6>Using Kilauea machine description <5>Linux version 2.6.29.1 (root@localhost.localdomain) (gcc version 4.2.2) #4 Mon Apr 13 19:26:57 CST 2009 <4>Found initrd at 0xeedaa000:0xeffff8f3 <7>Found legacy serial port 0 for /plb/opb/serial@ef600200 <7> mem=ef600200, taddr=ef600200, irq=0, clk=7407407, speed=0 <7>Found legacy serial port 1 for /plb/opb/serial@ef600300 <7> mem=ef600300, taddr=ef600300, irq=0, clk=7407407, speed=0 <7>Top of RAM: 0x40000000, Total RAM: 0x40000000 <7>Memory hole size: 0MB <4>Zone PFN ranges: <4> DMA 0x00000000 -> 0x00030000 <4> Normal 0x00030000 -> 0x00030000 <4> HighMem 0x00030000 -> 0x00040000 <4>Movable zone start PFN for each node <4>early_node_map[1] active PFN ranges <4> 0: 0x00000000 -> 0x00040000 <7>On node 0 totalpages: 262144 <7>free_area_init_node: node 0, pgdat c03304a0, node_mem_map c07fd000 <7> DMA zone: 1536 pages used for memmap <7> DMA zone: 0 pages reserved <7> DMA zone: 195072 pages, LIFO batch:31 <7> HighMem zone: 512 pages used for memmap <7> HighMem zone: 65024 pages, LIFO batch:15 <6>MMU: Allocated 1088 bytes of context maps for 255 contexts <4>Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260096 <5>Kernel command line: ramdisk_size=65536 root=/dev/ram rw ip=10.204.29.214:10.204.29.153:10.204.28.1:255.255.252.0:obs600:eth0:off panic=1 console=ttyS0,115200 <4>UIC0 (32 IRQ sources) at DCR 0xc0 <4>UIC1 (32 IRQ sources) at DCR 0xd0 <4>UIC2 (32 IRQ sources) at DCR 0xe0 <4>PID hash table entries: 4096 (order: 12, 16384 bytes) <7>time_init: decrementer frequency = 400.000000 MHz <7>time_init: processor frequency = 400.000000 MHz <6>clocksource: timebase mult[a00000] shift[22] registered <7>clockevent: decrementer mult[6666] shift[16] cpu[0] <6>Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) <6>Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) <7>High memory: 262144k <6>Memory: 1016784k/1048576k available (3136k kernel code, 31244k reserved, 136k data, 140k bss, 144k init) <6>SLUB: Genslabs=10, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 <6>Calibrating delay loop... 798.72 BogoMIPS (lpj=1597440) <4>Mount-cache hash table entries: 512 <4>Instruction machine check in kernel mode. <4>Oops: Machine check, sig: 7 [#1] <4>Kilauea <4>Modules linked in: <4>NIP: c000c63c LR: c000eb44 CTR: ee82a000 <4>REGS: eeda7f50 TRAP: 0202 Not tainted (2.6.29.1) <4>MSR: 00021030 <ME,CE,IR,DR> CR: 90029030 XER: c0000060 <4>TASK = ee82a3e0[2] 'kthreadd' THREAD: ee82e000 <6>GPR00: 3ffa80dc 3ffae128 ee82a3e0 3ffae138 88000000 00000000 00000000 c023d0ac <6>GPR08: c0342e54 c000eb44 00021032 c000c63c c035d000 00000000 3ffb2f00 00000000 <6>GPR16: 3ffa80dc 3ffae1e8 00000000 00000000 00000000 00000000 00000000 00000000 <6>GPR24: c03153d0 ee82ffb8 c00350f4 c031544c c0315458 ee82df08 c00350f4 ee82dee4 <4>NIP [c000c63c] program_check_exception+0x0/0x59c <4>LR [c000eb44] ret_from_except_full+0x0/0x4c <4>Call Trace: <4>Instruction dump: <4>3920000b 409eff88 4bffff90 813f0080 7fe3fb78 39290004 913f0080 80010014 <4>83e1000c 7c0803a6 38210010 4bffff14 <9421ffe0> 7c0802a6 7d800026 bfc10018 <4>---[ end trace 31fd0ba7d8756001 ]--- <4>Oops: Exception in kernel mode, sig: 4 [#2] <4>Kilauea <4>Modules linked in: <4>NIP: ee82ff80 LR: ee82ffb0 CTR: ee82a000 <4>REGS: ee835f50 TRAP: c03153d0 Tainted: G D (2.6.29.1) <4>MSR: c0312318 <FP,DE,DR> CR: 00029030 XER: c02368e0 <4>TASK = ee82a7c0[3] 'kthreadd' THREAD: ee834000 <6>GPR00: 3ffa80dc ee836000 ee82a7c0 00000000 ee82ffb0 00029030 00000000 ee82ff80 <6>GPR08: c0312318 00000000 00000000 c0312318 c033b260 00000000 3ffb2f00 00000000 <6>GPR16: 3ffa80dc 3ffae1e8 00000000 00000000 00000000 00000000 00000000 00000000 <6>GPR24: c03153d0 ee82ffb8 c00350f4 c031544c c0315458 ee82df08 c00350f4 ee82dee4 <4>NIP [ee82ff80] 0xee82ff80 <4>LR [ee82ffb0] 0xee82ffb0 <4>Call Trace: <4>Instruction dump: <4>XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX <4>XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX <4>---[ end trace 31fd0ba7d8756002 ]--- Please help, Best Regards, Sun _________________________________________________________________ Messenger安全保护中心,免费修复系统漏洞,保护Messenger安全! http://im.live.cn/safe/ [-- Attachment #2: Type: text/html, Size: 5970 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Help!Some memory doesn't work on PPC405Ex based board! 2009-04-13 12:05 Help!Some memory doesn't work on PPC405Ex based board! SunNeo @ 2009-04-14 9:23 ` Stefan Roese 2009-04-14 11:08 ` SunNeo 0 siblings, 1 reply; 15+ messages in thread From: Stefan Roese @ 2009-04-14 9:23 UTC (permalink / raw) To: linuxppc-dev; +Cc: SunNeo On Monday 13 April 2009, SunNeo wrote: > I'm porting Linux-2.6.29 on PPC405Ex based board, it's very similar to AMCC > "Kilauea" evb. > > In my board, two 512MB DDRII memory is connected to 2 ranks of the 405Ex > CPU. This 1GB memory works well at U-Boot-2009.01, but when I boot > Linux-2.6.29, the kernel hangs somewhere. Does it just hang "somewhere", or always at the same location? A random hangup could mean that you are having a memory problem (hardware, or wrong initialization). > What interesting is, if I > configured the system to use only 512MB memory at U-Boot, the Linux can > boot normally. Are you using DIMM's on your platform? Or soldered chips? Which memory initialization code are you using in U-Boot? And which autocalibration code? Did you do some intensive memory test? Best regards, Stefan ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: Help!Some memory doesn't work on PPC405Ex based board! 2009-04-14 9:23 ` Stefan Roese @ 2009-04-14 11:08 ` SunNeo 2009-04-14 12:20 ` [U-Boot] " Stefan Roese ` (2 more replies) 0 siblings, 3 replies; 15+ messages in thread From: SunNeo @ 2009-04-14 11:08 UTC (permalink / raw) To: sr, linuxppc-dev [-- Attachment #1: Type: text/plain, Size: 2010 bytes --] Hi, Stefan, Thanks for your help. My platform uses the MICRON MT47H256M8THN DDRII SDRAM and the DDRII SDRAM is soldered on the board. As I said, my board was similar with "Kilauea" evb, so I created my configuration header file from Kilauea's at U-Boot. In the configuration file, register value for the DDR SDRAM controller is defined. But I have removed DDR autocalibraton related configuration from the configuration file, do you think this will cause any issues? I'm not sure what you mean about "intensive memory test". I use "mm" cmd under U-Boot command prompt to modify value of high 512M memory, and this command works well. About booting Linux, the kernel hangs at the same location. Always after this print info "<4>Mount-cache hash table entries: 512". Best Regards, Sun > From: sr@denx.de > To: linuxppc-dev@ozlabs.org > Subject: Re: Help!Some memory doesn't work on PPC405Ex based board! > Date: Tue, 14 Apr 2009 11:23:02 +0200 > CC: sunwx2001@hotmail.com > > On Monday 13 April 2009, SunNeo wrote: > > I'm porting Linux-2.6.29 on PPC405Ex based board, it's very similar to AMCC > > "Kilauea" evb. > > > > In my board, two 512MB DDRII memory is connected to 2 ranks of the 405Ex > > CPU. This 1GB memory works well at U-Boot-2009.01, but when I boot > > Linux-2.6.29, the kernel hangs somewhere. > > Does it just hang "somewhere", or always at the same location? A random hangup > could mean that you are having a memory problem (hardware, or wrong > initialization). > > > What interesting is, if I > > configured the system to use only 512MB memory at U-Boot, the Linux can > > boot normally. > > Are you using DIMM's on your platform? Or soldered chips? Which memory > initialization code are you using in U-Boot? And which autocalibration code? > > Did you do some intensive memory test? > > Best regards, > Stefan _________________________________________________________________ 打工,挣钱,买房子,快来MClub一起”金屋藏娇”! http://club.msn.cn/?from=10 [-- Attachment #2: Type: text/html, Size: 2469 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Help!Some memory doesn't work on PPC405Ex based board! 2009-04-14 11:08 ` SunNeo @ 2009-04-14 12:20 ` Stefan Roese 2009-04-14 14:04 ` Grant Erickson 2009-04-14 16:30 ` Feng Kan 2 siblings, 0 replies; 15+ messages in thread From: Stefan Roese @ 2009-04-14 12:20 UTC (permalink / raw) To: SunNeo; +Cc: linuxppc-dev, U-Boot-Users Hi Sun, On Tuesday 14 April 2009, SunNeo wrote: > My platform uses the MICRON MT47H256M8THN DDRII SDRAM and the DDRII SDRAM > is soldered on the board. > > As I said, my board was similar with "Kilauea" evb, so I created my > configuration header file from Kilauea's at U-Boot. In the configuration > file, register value for the DDR SDRAM controller is defined. But I have > removed DDR autocalibraton related configuration from the configuration > file, do you think this will cause any issues? Yes, this could definitely cause some SDRAM related problems. But this is off-topic here. We should continue this discussion on the U-Boot mailing list instead (on CC). So please when you reply to this mail, remove the linuxppc-dev list from the recipients list. Best regards, Stefan ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! @ 2009-04-14 12:20 ` Stefan Roese 0 siblings, 0 replies; 15+ messages in thread From: Stefan Roese @ 2009-04-14 12:20 UTC (permalink / raw) To: u-boot Hi Sun, On Tuesday 14 April 2009, SunNeo wrote: > My platform uses the MICRON MT47H256M8THN DDRII SDRAM and the DDRII SDRAM > is soldered on the board. > > As I said, my board was similar with "Kilauea" evb, so I created my > configuration header file from Kilauea's at U-Boot. In the configuration > file, register value for the DDR SDRAM controller is defined. But I have > removed DDR autocalibraton related configuration from the configuration > file, do you think this will cause any issues? Yes, this could definitely cause some SDRAM related problems. But this is off-topic here. We should continue this discussion on the U-Boot mailing list instead (on CC). So please when you reply to this mail, remove the linuxppc-dev list from the recipients list. Best regards, Stefan ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Help!Some memory doesn't work on PPC405Ex based board! 2009-04-14 11:08 ` SunNeo 2009-04-14 12:20 ` [U-Boot] " Stefan Roese @ 2009-04-14 14:04 ` Grant Erickson 2009-04-14 16:30 ` Feng Kan 2 siblings, 0 replies; 15+ messages in thread From: Grant Erickson @ 2009-04-14 14:04 UTC (permalink / raw) To: SunNeo; +Cc: linuxppc-dev On 4/14/09 4:08 AM, SunNeo wrote: > My platform uses the MICRON MT47H256M8THN DDRII SDRAM and the DDRII SDRAM is > soldered on the board. > > As I said, my board was similar with "Kilauea" evb, so I created my > configuration header file from Kilauea's at U-Boot. In the configuration file, > register value for the DDR SDRAM controller is defined. But I have removed DDR > autocalibraton related configuration from the configuration file, do you think > this will cause any issues? Sun: Does your board have ECC? While it seems like simply following the static, non-auto-calibrating configuration of the Kilauea or Haleakala board would be sufficient, my experience is that it is not, especially if your design has ECC. Should you decide to escalate the issue with AMCC, I suspect auto-calibration will be the first thing they ask you to enable and re-check your design with. Per Stefan's comments, unless you use an intensive and comprehensive memory test of some sort, just running u-boot is not necessarily a sufficient validation that memory works as it, in many configurations, touches and uses little of the overall RAM during its operation. Regards, Grant ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Help!Some memory doesn't work on PPC405Ex based board! 2009-04-14 11:08 ` SunNeo 2009-04-14 12:20 ` [U-Boot] " Stefan Roese 2009-04-14 14:04 ` Grant Erickson @ 2009-04-14 16:30 ` Feng Kan 2009-04-15 7:56 ` [U-Boot] " SunNeo 2 siblings, 1 reply; 15+ messages in thread From: Feng Kan @ 2009-04-14 16:30 UTC (permalink / raw) To: SunNeo; +Cc: linuxppc-dev, support Hi SunNeo: The fact that it is hanging at the same place in kernel seems strange. Usually when dram initialization is incorrect, the kernel would not run at all. Uboot just hangs at relocate code. I suggest you turn on early kernel printf to see if you get some other outputs. P.S when you have discrete memory on board. you have to be sure that your calibration values are correct. The RDCC RQDC value should be best possible. You can run the fix initialization and then lift the autocalibration routine to the end of the fix dram init to determine the best RFDC RQDC windows. After that recode the fix values for those registers. Feng Kan AMCC Software SunNeo wrote: > Hi, Stefan, > > Thanks for your help. > > My platform uses the MICRON MT47H256M8THN DDRII SDRAM and the DDRII SDRAM is soldered on the board. > > As I said, my board was similar with "Kilauea" evb, so I created my configuration header file from Kilauea's at U-Boot. In the configuration file, register value for the DDR SDRAM controller is defined. But I have removed DDR autocalibraton related configuration from the configuration file, do you think this will cause any issues? > > I'm not sure what you mean about "intensive memory test". I use "mm" cmd under U-Boot command prompt to modify value of high 512M memory, and this command works well. > > About booting Linux, the kernel hangs at the same location. Always after this print info "<4>Mount-cache hash table entries: 512". > > Best Regards, > Sun > > >> From: sr@denx.de >> To: linuxppc-dev@ozlabs.org >> Subject: Re: Help!Some memory doesn't work on PPC405Ex based board! >> Date: Tue, 14 Apr 2009 11:23:02 +0200 >> CC: sunwx2001@hotmail.com >> >> On Monday 13 April 2009, SunNeo wrote: >> >>> I'm porting Linux-2.6.29 on PPC405Ex based board, it's very similar to AMCC >>> "Kilauea" evb. >>> >>> In my board, two 512MB DDRII memory is connected to 2 ranks of the 405Ex >>> CPU. This 1GB memory works well at U-Boot-2009.01, but when I boot >>> Linux-2.6.29, the kernel hangs somewhere. >>> >> Does it just hang "somewhere", or always at the same location? A random hangup >> could mean that you are having a memory problem (hardware, or wrong >> initialization). >> >> >>> What interesting is, if I >>> configured the system to use only 512MB memory at U-Boot, the Linux can >>> boot normally . >>> >> Are you using DIMM's on your platform? Or soldered chips? Which memory >> initialization code are you using in U-Boot? And which autocalibration code? >> >> Did you do some intensive memory test? >> >> Best regards, >> Stefan >> > > > _____ > > 把MSN装进手机,更多聊天乐趣等你挖掘! 立刻下载! <http://mobile.msn.com.cn/> > > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! 2009-04-14 16:30 ` Feng Kan @ 2009-04-15 7:56 ` SunNeo 2009-04-15 8:08 ` Stefan Roese 0 siblings, 1 reply; 15+ messages in thread From: SunNeo @ 2009-04-15 7:56 UTC (permalink / raw) To: u-boot Feng Kan, Stefan and Grant, Thanks for all your suggestion. 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. 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. I think I can confirm all 1024M memory can work well at U-Boot. And if I add the parameter "mem=512M" to bootargs, and set "initrd_high" to "20000000", Linux can boot normally. Best Regards, Sun > Date: Tue, 14 Apr 2009 09:30:46 -0700 > From: fkan at amcc.com > To: sunwx2001 at hotmail.com > CC: support at amcc.com; linuxppc-dev at ozlabs.org > Subject: Re: Help!Some memory doesn't work on PPC405Ex based board! > > Hi SunNeo: > > The fact that it is hanging at the same place in kernel seems strange. > Usually when dram initialization is incorrect, > the kernel would not run at all. Uboot just hangs at relocate code. I > suggest you turn on early kernel printf to see > if you get some other outputs. > > P.S when you have discrete memory on board. you have to be sure that > your calibration values are correct. The RDCC > RQDC value should be best possible. You can run the fix initialization > and then lift the autocalibration routine > to the end of the fix dram init to determine the best RFDC RQDC windows. > After that recode the fix values for those > registers. > > Feng Kan > AMCC Software > > SunNeo wrote: > > Hi, Stefan, > > > > Thanks for your help. > > > > My platform uses the MICRON MT47H256M8THN DDRII SDRAM and the DDRII SDRAM is soldered on the board. > > > > As I said, my board was similar with "Kilauea" evb, so I created my configuration header file from Kilauea's at U-Boot. In the configuration file, register value for the DDR SDRAM controller is defined. But I have removed DDR autocalibraton related configuration from the configuration file, do you think this will cause any issues? > > > > I'm not sure what you mean about "intensive memory test". I use "mm" cmd under U-Boot command prompt to modify value of high 512M memory, and this command works well. > > > > About booting Linux, the kernel hangs at the same location. Always after this print info "<4>Mount-cache hash table entries: 512". > > > > Best Regards, > > Sun > > > > > >> From: sr at denx.de > >> To: linuxppc-dev at ozlabs.org > >> Subject: Re: Help!Some memory doesn't work on PPC405Ex based board! > >> Date: Tue, 14 Apr 2009 11:23:02 +0200 > >> CC: sunwx2001 at hotmail.com > >> > >> On Monday 13 April 2009, SunNeo wrote: > >> > >>> I'm porting Linux-2.6.29 on PPC405Ex based board, it's very similar to AMCC > >>> "Kilauea" evb. > >>> > >>> In my board, two 512MB DDRII memory is connected to 2 ranks of the 405Ex > >>> CPU. This 1GB memory works well at U-Boot-2009.01, but when I boot > >>> Linux-2.6.29, the kernel hangs somewhere. > >>> > >> Does it just hang "somewhere", or always at the same location? A random hangup > >> could mean that you are having a memory problem (hardware, or wrong > >> initialization). > >> > >> > >>> What interesting is, if I > >>> configured the system to use only 512MB memory at U-Boot, the Linux can > >>> boot normally . > >>> > >> Are you using DIMM's on your platform? Or soldered chips? Which memory > >> initialization code are you using in U-Boot? And which autocalibration code? > >> > >> Did you do some intensive memory test? > >> > >> Best regards, > >> Stefan > >> > > > > > > _____ > > > > ?MSN???????????????? ????? <http://mobile.msn.com.cn/> > > > > > _________________________________________________________________ ????????????MClub????????? http://club.msn.cn/?from=10 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! 2009-04-15 7:56 ` [U-Boot] " SunNeo @ 2009-04-15 8:08 ` Stefan Roese 2009-04-23 5:00 ` SunNeo 0 siblings, 1 reply; 15+ messages in thread From: Stefan Roese @ 2009-04-15 8:08 UTC (permalink / raw) To: u-boot 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 at denx.de ===================================================================== ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! 2009-04-15 8:08 ` Stefan Roese @ 2009-04-23 5:00 ` SunNeo 2009-04-23 6:01 ` Grant Erickson 0 siblings, 1 reply; 15+ messages in thread From: SunNeo @ 2009-04-23 5:00 UTC (permalink / raw) To: u-boot I got a new board with 1GB DDRII memory and only 1 Rank, but the problem still exist. The following is a summary of my job: 1. My board combines 4 Hynix H5PS2G83AFR (256MB * 8bits) to make a 1GB memory, use only one 1 rank, no ECC. 2. My board is similar to AMCC Kilauea EVB. For U-Boot-2009.01, I created my configuration file from Kilauea's, and remove Nand flash, FPGA related configuration. 3. For DDR SDRAM controller, I use same configuration as Kilauea's, memory size (MB0CF) excepted. Have enabled auto-calibration. 4. Have performed memory test with "mtest" command at U-Boot, no error happened. 5. There is no PCI device on my board. U-Boot hangs when it perform PCI scan. So I remove all PCI related configuration from my configuration file at U-Boot. 6. I use "kilauea_defconfig" to compile Linux-2.6.25. Also, I disabled Nand Flash and PCI from "menuconfig". 7. To boot my Linux, I use Kilauea's dtb file directly. I have to keep PCIE node in this dtb file, because my Ethernet port will not work well without this PCIE node. 8. Use the 1GB memory to boot Linux, an error info "Kernel stack overflow in process ee8153e0, r1=ee82bfa0" is reported, and kernel hangs. 9. Add the parameter "mem=516M" to bootargs, Linux can boot up normally. But if add "mem=517M" to bootargs, Linux hangs. The following is error info dumped during Linux Boot: ## Transferring control to Linux (at address 00000000) ... Booting using OF flat tree... id mach(): done MMU:enter MMU:hw init MMU:mapin MMU:setio MMU:exit Using Kilauea machine description Linux version 2.6.25-rc2-00492-g8adfc2c (root at localhost.localdomain) (gcc versio n 4.2.2) #2 Wed Apr 22 14:15:31 CST 2009 Found initrd at 0xeedaa000:0xeffff8f3 Found legacy serial port 0 for /plb/opb/serial at ef600200 mem=ef600200, taddr=ef600200, irq=0, clk=7407407, speed=0 Found legacy serial port 1 for /plb/opb/serial at ef600300 mem=ef600300, taddr=ef600300, irq=0, clk=7407407, speed=0 console [udbg0] enabled Entering add_active_range(0, 0, 196608) 0 entries of 256 used setup_arch: bootmem arch: exit Top of RAM: 0x30000000, Total RAM: 0x30000000 Memory hole size: 0MB Zone PFN ranges: DMA 0 -> 196608 Normal 196608 -> 196608 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0 -> 196608 On node 0 totalpages: 196608 DMA zone: 1536 pages used for memmap DMA zone: 0 pages reserved DMA zone: 195072 pages, LIFO batch:31 Normal zone: 0 pages used for memmap Movable zone: 0 pages used for memmap Built 1 zonelists in Zone order, mobility grouping on. Total pages: 195072 Kernel command line: ramdisk_size=65536 root=/dev/ram rw ip=10.204.29.214:10.204 .29.153:10.204.28.1:255.255.252.0:obs600:eth0:off panic=1 console=ttyS0,115200 n oflashcfg=1 UIC0 (32 IRQ sources) at DCR 0xc0 UIC1 (32 IRQ sources) at DCR 0xd0 UIC2 (32 IRQ sources) at DCR 0xe0 PID hash table entries: 4096 (order: 12, 16384 bytes) time_init: decrementer frequency = 600.000000 MHz time_init: processor frequency = 600.000000 MHz clocksource: timebase mult[6aaaab] shift[22] registered clockevent: decrementer mult[9999] shift[16] cpu[0] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) Memory: 757504k/786432k available (2804k kernel code, 28764k reserved, 108k data , 88k bss, 132k init) SLUB: Genslabs=10, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1 Calibrating delay loop... 1196.03 BogoMIPS (lpj=2392064) Mount-cache hash table entries: 512 Kernel stack overflow in process ee8153e0, r1=ee82bfa0 NIP: c02e0000 LR: ee82bfb0 CTR: ee8153e0 REGS: ee82bef0 TRAP: ee82bfb0 Not tainted (2.6.25-rc2-00492-g8adfc2c) MSR: fffffffb <EE,PR,FP,ME,IR,DR> CR: 00029030 XER: c0016c3c TASK = ee8153e0[2] 'kthreadd' THREAD: ee82a000 GPR00: 00000078 ee82bfa0 ee8153e0 00800711 ee82bf20 ffffffff ffffffff ffffffff GPR08: c02e3b30 ee815408 c02e3b30 c02e3b00 ee82bf40 ffffffff c02e3b00 00000000 GPR16: ee8153e0 ee815408 c02e3b30 c02e3b00 ee82bf60 c0016398 3ffb0648 c02e2a7c GPR24: 00000078 ee8153e0 c02e3b00 ee8153e0 ee82bf80 c0015260 3ffb0648 c02e2a7c NIP [c02e0000] exception_stack_bottom+0x0/0x1000 LR [ee82bfb0] 0xee82bfb0 Call Trace: [ee82bfa0] [ee8153e0] 0xee8153e0 (unreliable) [ee82bfb0] [c0032d80] kthreadd+0x38/0x164 [ee82bff0] [c000d460] kernel_thread+0x44/0x60 Kernel panic - not syncing: kernel stack overflow Rebooting in 1 seconds..<0>System Halted, OK to turn off power Best Regards Sun > From: sr at denx.de > To: sunwx2001 at hotmail.com > Subject: Re: Help!Some memory doesn't work on PPC405Ex based board! > Date: Wed, 15 Apr 2009 10:08:40 +0200 > CC: fkan at amcc.com; gerickson at nuovations.com; support at amcc.com; u-boot at lists.denx.de > > 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 at denx.de > ===================================================================== _________________________________________________________________ ????????????MClub????????? http://club.msn.cn/?from=10 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! 2009-04-23 5:00 ` SunNeo @ 2009-04-23 6:01 ` Grant Erickson 2009-04-23 8:07 ` Stefan Roese 0 siblings, 1 reply; 15+ messages in thread From: Grant Erickson @ 2009-04-23 6:01 UTC (permalink / raw) To: u-boot On 4/22/09 10:00 PM, SunNeo wrote: > I got a new board with 1GB DDRII memory and only 1 Rank, but the problem still > exist. > > The following is a summary of my job: > > 4. Have performed memory test with "mtest" command at U-Boot, no error > happened. Sun: It's been awhile since I looked at the code for mtest; however, it may not be entirely comprehensive or exhaustive depending on how you configured your u-boot build and the arguments you invoked it with. Do verify that it is operating over the largest range of RAM possible and that it is doing an array of tests (walking 1s, alternating bit patterns, etc.). Also, AMCC has available (perhaps available through your FAE if not on MyAMCC or AMCC.com itself) a DDR planning spreadsheet. While the last revision I used had a few bugs, it certainly was useful to validate our DDR configuration against. I'd recommend obtaining it and reviewing your settings. Beyond that, does the same kernel work on Kilauea? Have you set up a build environment where you can make small, incremental changes and verify those on Kilauea and then on your board and have confidence that only those things you changed are changing? Once the wrinkles got worked out of the DDR settings in the PPC405EX[r] boards I've worked with in the last year, they all worked as well as Kilauea without notable changes to the Linux kernel, version 2.6.25 up through 2.6.28 (all from the Denx GIT repository). > 9. Add the parameter "mem=516M" to bootargs, Linux can boot up normally. But > if add "mem=517M" to bootargs, Linux hangs. That should be instructive. Start tweaking mtest or writing your own memory tests to tease out a pattern from that. Failing that, what other values work here? What values fail? Regards, Grant Erickson Principal Nuovations ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! 2009-04-23 6:01 ` Grant Erickson @ 2009-04-23 8:07 ` Stefan Roese 2009-04-23 9:13 ` SunNeo 0 siblings, 1 reply; 15+ messages in thread From: Stefan Roese @ 2009-04-23 8:07 UTC (permalink / raw) To: u-boot Sun, On Thursday 23 April 2009, Grant Erickson wrote: > On 4/22/09 10:00 PM, SunNeo wrote: > > I got a new board with 1GB DDRII memory and only 1 Rank, but the problem > > still exist. > > > > The following is a summary of my job: > > > > 4. Have performed memory test with "mtest" command at U-Boot, no error > > happened. > > Sun: > > It's been awhile since I looked at the code for mtest; however, it may not > be entirely comprehensive or exhaustive depending on how you configured > your u-boot build and the arguments you invoked it with. Do verify that it > is operating over the largest range of RAM possible and that it is doing an > array of tests (walking 1s, alternating bit patterns, etc.). Take a look at the mem test included in the POST framework (post/drivers/memory.c). This should be more extensive. <snip> > > 9. Add the parameter "mem=516M" to bootargs, Linux can boot up normally. > > But if add "mem=517M" to bootargs, Linux hangs. > > That should be instructive. Start tweaking mtest or writing your own memory > tests to tease out a pattern from that. Failing that, what other values > work here? What values fail? And I'm wondering why you are using such an old Linux kernel version. I suggest to at least test a recent arch/powerpc version. Perhaps this gives other results. 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 at denx.de ===================================================================== ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! 2009-04-23 8:07 ` Stefan Roese @ 2009-04-23 9:13 ` SunNeo 2009-04-23 9:55 ` Stefan Roese 0 siblings, 1 reply; 15+ messages in thread From: SunNeo @ 2009-04-23 9:13 UTC (permalink / raw) To: u-boot Have performed a slow memory post using code in post/drivers/memory.c, still no error. I found memsize in post/driver/memory.c has a limit of 256MB, so I modify it to 1024M. Have tried Linux-2.6.29, same result. Best Regards, Sun > From: sr at denx.de > To: sunwx2001 at hotmail.com > Subject: Re: Help!Some memory doesn't work on PPC405Ex based board! > Date: Thu, 23 Apr 2009 10:07:41 +0200 > CC: gerickson at nuovations.com; fkan at amcc.com; support at amcc.com; u-boot at lists.denx.de > > Sun, > > On Thursday 23 April 2009, Grant Erickson wrote: > > On 4/22/09 10:00 PM, SunNeo wrote: > > > I got a new board with 1GB DDRII memory and only 1 Rank, but the problem > > > still exist. > > > > > > The following is a summary of my job: > > > > > > 4. Have performed memory test with "mtest" command at U-Boot, no error > > > happened. > > > > Sun: > > > > It's been awhile since I looked at the code for mtest; however, it may not > > be entirely comprehensive or exhaustive depending on how you configured > > your u-boot build and the arguments you invoked it with. Do verify that it > > is operating over the largest range of RAM possible and that it is doing an > > array of tests (walking 1s, alternating bit patterns, etc.). > > Take a look at the mem test included in the POST framework > (post/drivers/memory.c). This should be more extensive. > > <snip> > > > > 9. Add the parameter "mem=516M" to bootargs, Linux can boot up normally. > > > But if add "mem=517M" to bootargs, Linux hangs. > > > > That should be instructive. Start tweaking mtest or writing your own memory > > tests to tease out a pattern from that. Failing that, what other values > > work here? What values fail? > > And I'm wondering why you are using such an old Linux kernel version. I > suggest to at least test a recent arch/powerpc version. Perhaps this gives > other results. > > 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 at denx.de > ===================================================================== _________________________________________________________________ Live Search??????????????? http://www.live.com/?scope=video ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! 2009-04-23 9:13 ` SunNeo @ 2009-04-23 9:55 ` Stefan Roese 2009-05-04 4:56 ` SunNeo 0 siblings, 1 reply; 15+ messages in thread From: Stefan Roese @ 2009-04-23 9:55 UTC (permalink / raw) To: u-boot On Thursday 23 April 2009, SunNeo wrote: > Have performed a slow memory post using code in post/drivers/memory.c, > still no error. Another idea: Did you also try using DDR autocalibration method A? Standard is method B but A takes a lot longer. (See the Method_A and Method_B algorithm discription in the file cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c). Perhaps this gives some further results. > I found memsize in post/driver/memory.c has a limit of > 256MB, so I modify it to 1024M. > > > Have tried Linux-2.6.29, same result. Hmmm. You should perhaps try to debug further where exactly this error is occurring. Via printk's or JTAG debugger. If this error always happens at the same location it could perhaps be located (if it's not a memory problem) in the kernel source code. 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 at denx.de ===================================================================== ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! 2009-04-23 9:55 ` Stefan Roese @ 2009-05-04 4:56 ` SunNeo 0 siblings, 0 replies; 15+ messages in thread From: SunNeo @ 2009-05-04 4:56 UTC (permalink / raw) To: u-boot Stefan and Grant, I have made some progess, Linux can boot normally with 1 GB memory now. The following is what I did: 1.Chang "Maximum low memory size" from 0x30000000(768M) to 0x20000000(512M) and enable High Memory support for Linux kernel configuration. 2.Add "CONFIG_VERY_BIG_RAM" to U-Boot configuration file, or change U-Boot Env. variable "initrd_high" from 0x30000000 to 0x20000000. This step is to make sure Linux can find ramdisk and I don't think it's critical for my issue. Now, my question is do you think I have found root cause of my issue? I mean incorrect setting of "Maximum low memory size". Best Regards, Sun > From: sr at denx.de > To: u-boot at lists.denx.de > Subject: Re: [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! > Date: Thu, 23 Apr 2009 11:55:35 +0200 > CC: sunwx2001 at hotmail.com; support at amcc.com; gerickson at nuovations.com > > On Thursday 23 April 2009, SunNeo wrote: > > Have performed a slow memory post using code in post/drivers/memory.c, > > still no error. > > Another idea: Did you also try using DDR autocalibration method A? Standard is > method B but A takes a lot longer. (See the Method_A and Method_B algorithm > discription in the file cpu/ppc4xx/4xx_ibm_ddr2_autocalib.c). Perhaps this > gives some further results. > > > I found memsize in post/driver/memory.c has a limit of > > 256MB, so I modify it to 1024M. > > > > > > Have tried Linux-2.6.29, same result. > > Hmmm. You should perhaps try to debug further where exactly this error is > occurring. Via printk's or JTAG debugger. If this error always happens at the > same location it could perhaps be located (if it's not a memory problem) in > the kernel source code. > > 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 at denx.de > ===================================================================== _________________________________________________________________ ?Windows Live ??????????Messenger? http://www.windowslive.cn ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2009-05-04 4:56 UTC | newest] Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-04-13 12:05 Help!Some memory doesn't work on PPC405Ex based board! SunNeo 2009-04-14 9:23 ` Stefan Roese 2009-04-14 11:08 ` SunNeo 2009-04-14 12:20 ` Stefan Roese 2009-04-14 12:20 ` [U-Boot] " Stefan Roese 2009-04-14 14:04 ` Grant Erickson 2009-04-14 16:30 ` Feng Kan 2009-04-15 7:56 ` [U-Boot] " SunNeo 2009-04-15 8:08 ` Stefan Roese 2009-04-23 5:00 ` SunNeo 2009-04-23 6:01 ` Grant Erickson 2009-04-23 8:07 ` Stefan Roese 2009-04-23 9:13 ` SunNeo 2009-04-23 9:55 ` Stefan Roese 2009-05-04 4:56 ` SunNeo
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.