From mboxrd@z Thu Jan 1 00:00:00 1970 From: SunNeo Date: Thu, 23 Apr 2009 05:00:13 +0000 Subject: [U-Boot] Help!Some memory doesn't work on PPC405Ex based board! In-Reply-To: <200904151008.40439.sr@denx.de> References: <49E4BA36.2080102@amcc.com> <200904151008.40439.sr@denx.de> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 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