mpc8540 and stack overflow

Matthew S. McClintock mattsm at
Thu Feb 5 03:02:17 EST 2004

	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?


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
L2 cache enabled: 256KB
In:    serial
Out:   serial
Err:   serial
U-Boot relocated to 0ffdc000
### 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     =
baudrate    = 115200 bps
No initrd
## Transferring control to Linux (at address 00000000) ...

Matthew S. McClintock <mattsm at>

** Sent via the linuxppc-embedded mail list. See

More information about the Linuxppc-embedded mailing list