mpc8540 and stack overflow
Matthew S. McClintock
mattsm at arlut.utexas.edu
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?
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