Trouble "Transferring control to Linux (at address 00000000)"

Mikhail Zaturenskiy mzaturenskiy.st at gmail.com
Sat Jun 27 02:13:38 EST 2009


Hello,

I'm trying to load Linux from U-Boot. I am using ELDK 4.2 with U-Boot
2009.03 on an EP88xC rev1.1 board (MPC885 cpu, 64MB RAM, 32MB FLASH).
The linux kernel sources were obtained from instructions at
"http://www.denx.de/wiki/view/DULG/LinuxConfiguration#Section_6.1."
and the FDT blob (dtb) was generated from
"linux-2.6-denx/arch/powerpc/boot/dts/ep88xc.dts". Below is my output
from boot to hang:

U-Boot 2009.03-svn8591 (Jun 25 2009 - 11:08:09)

CPU:   MPC885ZPnn at 100 MHz [40.0...133.0 MHz]
       8 kB I-Cache 8 kB D-Cache FEC present
clock 100000000Hz != 300000Hz
Board: EP88xC 1.1  CPLD revision 2
DRAM:  64 MB
Top of RAM usable for U-Boot at: 04000000
Reserving 208k for U-Boot at: 03fcb000
Reserving 384k for malloc() at: 03f6b000
Reserving 60 Bytes for Board Info at: 03f6afc4
Reserving 56 Bytes for Global Data at: 03f6af8c
Stack Pointer at: 03f6af68
New Stack Pointer is: 03f6af68
Now running in RAM - U-Boot at: 03fcb000
FLASH: flash detect cfi
fwc addr fc000000 cmd f0 f0 8bit x 8 bit
...
... <some output skipped> ...
...
is= cmd 59(Y) addr fc000048 is= 00590059 00590059
device interface is 2
found port 4 chip 2 port 32 bits chip 16 bits
00 : 51 52 59 02 00 40 00 00 00 00 00 27 36 00 00 07  QRY.. at .....'6...
...
... <some output skipped> ...
...
fwc addr fc000154 cmd 98 00980098 32bit x 16 bit
manufacturer is 2
manufacturer id is 0x1
device id is 0x227e
device id2 is 0x0
cfi version is 0x3133
size_ratio 2 port 32 bits chip 16 bits
found 1 erase regions
erase region 0: 0x0200007f
erase_region_count = 128 erase_region_size = 131072
fwc addr fc000000 cmd f0 00f000f0 32bit x 16 bit
flash_protect ON: from 0xFC000000 to 0xFC02DFFF
protect on 0
flash_protect ON: from 0xFC040000 to 0xFC07FFFF
protect on 1
32 MB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
U-Boot relocated to 03fcb000
Net:   FEC ETHERNET, FEC2 ETHERNET
### main_loop entered: bootdelay=2

### main_loop: bootcmd="bootm fc080000"
Hit any key to stop autoboot:  0
## Current stack ends at 0x03f6ad50
*  kernel: cmdline image address = 0xfc080000
Wrong Image Format for bootm command
ERROR: can't get kernel image!
=> setenv ipaddr 10.0.54.150
=> setenv serverip 10.0.54.129
=> setenv bootargs root=/dev/ram0 rw
=> setenv ethaddr 00-e0-86-0c-84-fd
eth_set_enetaddr(num=0, addr=00-e0-86-0c-84-fd)
Setting new HW address on FEC ETHERNET
New Address is             00:E0:86:0C:84:FD
eth_set_enetaddr(num=0, addr=00-e0-86-0c-84-fd)
Setting new HW address on FEC ETHERNET
New Address is             00:E0:86:0C:84:FD
=> tftp 400000 ep88x_uimage2
Trying FEC ETHERNET
Using FEC ETHERNET device
TFTP from server 10.0.54.129; our IP address is 10.0.54.150
Filename 'ep88x_uimage2'.
Load address: 0x400000
Loading: #################################################################
         ########
done
Bytes transferred = 1061544 (1032a8 hex)
=> tftp 550000 ep88x_ramdisk3
Trying FEC ETHERNET
Using FEC ETHERNET device
TFTP from server 10.0.54.129; our IP address is 10.0.54.150
Filename 'ep88x_ramdisk3'.
Load address: 0x550000
Loading: #################################################################
         #############################################################
done
Bytes transferred = 1846099 (1c2b53 hex)
=> tftp 750000 ep88x_dtb
Trying FEC ETHERNET
Using FEC ETHERNET device
TFTP from server 10.0.54.129; our IP address is 10.0.54.150
Filename 'ep88x_dtb'.
Load address: 0x750000
Loading: #
done
Bytes transferred = 12288 (3000 hex)
=> bootm 400000 550000 750000
## Current stack ends at 0x03f6ad60
*  kernel: cmdline image address = 0x00400000
## Booting kernel from Legacy Image at 00400000 ...
   Image Name:   Linux-2.6.30-rc2-01402-gd4e2f68-
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    1061480 Bytes =  1 MB
   Load Address: 00000000
   Entry Point:  00000000
   Entry Point:  00000000
   kernel data at 0x00400040, len = 0x00103268 (1061480)
*  ramdisk: cmdline image address = 0x00550000
## Loading init Ramdisk from Legacy Image at 00550000 ...
   Image Name:   Simple Embedded Linux Framework
   Image Type:   PowerPC Linux RAMDisk Image (gzip compressed)
   Data Size:    1846035 Bytes =  1.8 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   ramdisk start = 0x00550040, ramdisk end = 0x00712b53
*  fdt: cmdline image address = 0x00750000
## Checking for 'FDT'/'FDT Image' at 00750000
*  fdt: raw FDT blob
## Flattened Device Tree blob at 00750000
   Booting using the fdt blob at 0x750000
   of_flat_tree at 0x00750000 size 0x00003000
   Uncompressing Kernel Image ... OK
   kernel loaded at 0x00000000, end = 0x00226224
## initrd_high = 0xffffffff, copy_to_ram = 1
   Loading Ramdisk to 03da7000, end 03f69b13 ... OK
   ramdisk load start = 0x03da7000, ramdisk load end = 0x03f69b13
## Transferring control to Linux (at address 00000000) ...
   Booting using OF flat tree...

I did a post-mortem analysis
(http://www.denx.de/wiki/view/DULG/LinuxPostMortemAnalysis) and came
up with the following message:
<6>Using Embedded Planet EP88xC machine description.
<0>Kernel panic - not syncing: Error: Failed to allocate 0x1
................0x800000..
<0>.
<4>Call Trace:.
<4>................69e0]
show_stack...............................21f00] [c001bcb4]
panic+0x8c/0x1................ [c01fac70] lmb_alloc+0x0/0xc.
<4>[c0221f70] [c01................_page+0x60/0x74.
<4>[c0221f80] [c01a4484] pte_alloc_one_kernel+0x

I'm not quite sure where to go from here to get linux working. Anybody
have any suggestions?

Thank you,
Mikhail Zaturenskiy


More information about the Linuxppc-dev mailing list