mpc8540 and stack overflow

Kumar Gala kumar.gala at motorola.com
Thu Feb 5 15:43:57 EST 2004


It appears from the backtrace that you may be running out of stack
space due to some external interrupt that is not getting services (just
a guess).  What may be happening is that the StackOverflow is occurring
because of an extensive functional depth.

Are you able to see anything on the console from Linux?

- kumar

On Feb 4, 2004, at 10:02 AM, Matthew S. McClintock wrote:

>
> 	I am trying to get the linux kernel working on a board with an MPC8540
> cpu. I'm loading the kernel from u-boot and after transferring control
> to the kernel from u-boot I immediately run into errors.
>
> 	Upon investigating with the bdi2000 I get the following backtrace:
>
> #0  printk (fmt=0xc0166ac0 "") at printk.c:448
> #1  0xc0006dd8 in print_backtrace (sp=0xc01651f8) at process.c:594
> #2  0xc0006874 in show_regs (regs=0xc0164798) at process.c:352
> #3  0xc00044f0 in StackOverflow (regs=0xc0164798) at traps.c:485
> #4  0xc00007a0 in ExternalInput ()
>
> So my question is what causes a StackOverflow? Is it because I have run
> out of stack space? Do I need to make it bigger? If so, how does one do
> that? Or perhaps I am misinterpreting the meaning of a stack overflow,
> is it just bad code somewhere?
>
> Thanks,
> Matthew
>
> The output from the console is:
>
> U-Boot 1.0.2 (Feb  3 2004 - 12:37:25)
>
> Motorola PowerPC ProcessorID=00000000 Rev. PVR=80200010
> Board: Motorola MPC8540ADS Board
>         CPU: 660 MHz
>         CCB: 264 MHz
>         DDR: 132 MHz
>         LBC: 66 MHz
> L1 D-cache 32KB, L1 I-cache 32KB enabled.
> I2C:   ready
> DRAM:  DDR module detected, total size:256MB.
> 256 MB
> Top of RAM usable for U-Boot at: 10000000
> Reserving 141k for U-Boot at: 0ffdc000
> Reserving 136k for malloc() at: 0ffba000
> Reserving 72 Bytes for Board Info at: 0ffb9fb8
> Reserving 48 Bytes for Global Data at: 0ffb9f88
> Stack Pointer at: 0ffb9f68
> New Stack Pointer is: 0ffb9f68
> Now running in RAM - U-Boot at: 0ffdc000
> FLASH:  8 MB
> L2 cache enabled: 256KB
> In:    serial
> Out:   serial
> Err:   serial
> U-Boot relocated to 0ffdc000
> Net:   MOTOROLA ETHERNE
> ### main_loop entered: bootdelay=3
>
> ### main_loop: bootcmd="bootm 0xff800000"
> Hit any key to stop autoboot:  0
> ## Booting image at ff800000 ...
>    Image Name:   Linux-2.4.23-rc1
>    Image Type:   PowerPC Linux Kernel Image (gzip compressed)
>    Data Size:    821468 Bytes = 802.2 kB
>    Load Address: 00000000
>    Entry Point:  00000000
>    Verifying Checksum ... OK
>    Uncompressing Kernel Image ... OK
> ## Current stack ends at 0x0FFB9CE8 => set upper limit to 0x00800000
> ## cmdline at 0x007FFF00 ... 0x007FFFAA
> bd address  = 0x0FFB9FB8
> memstart    = 0x00000000
> memsize     = 0x10000000
> flashstart  = 0xFF800000
> flashsize   = 0x00800000
> flashoffset = 0x00000000
> sramstart   = 0x00000000
> sramsize    = 0x00000000
> immr_base   = 0xFDF00000
> bootflags   = 0x40003F80
> intfreq     =    660 MHz
> busfreq     =    264 MHz
> ethaddr     = 00:01:AF:07:9B:8A
> eth1addr    = 00:01:AF:07:9B:8B
> eth2addr    = 00:01:AF:07:9B:8C
> IP addr     = 10.82.0.105
> baudrate    = 115200 bps
> No initrd
> ## Transferring control to Linux (at address 00000000) ...
>
>
> --
> Matthew S. McClintock <mattsm at arlut.utexas.edu>
>
>


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list