my cpu is 860T, using bootm command boot a linux kernel image, the following message print by smc1:
 
bootm 300000
 
## Booting image at 00300000 ...
   Image Name:   Linux-2.6.20.14
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    1081591 Bytes =  1 MB
   Load Address: 00100000
   Entry Point:  00100000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
## Current stack ends at 0x01D5DB10 => set upper limit to 0x00800000
No initrd
## Transferring control to Linux (at address 00100000) ...
 
 
 
then, the program has no response.
 
i debug it througth BDM, in u-boot function "do_bootm_linux", execute at "kernel = (void (*)(bd_t *, ulong, ulong, ulong, ulong))hdr->ih_ep", the program branch to address "0x00000000", the code is shown as following:
00000000    mr    r31,r3
00000004    mr    r30,r4
00000008    mr    r29,r5
0000000C    mr    r28,r6
00000010    mr    r27,r7
00000014    bl    0x000020C8
00000018    mfmsr    r0
0000001C    ori    r0,r0,0x30
00000020    mtspr    SRR1,r0
00000024    lis    r0,0xC0002004@h
00000028    ori    r0,r0,0xC0002004@l
0000002C    mtspr    SRR0,r0
00000030    rfi
 
 
my questions are:
 
1. Is the code "kernel = (void (*)(bd_t *, ulong, ulong, ulong, ulong))hdr->ih_ep" branch right?
 
2. What's the expected code after "kernel = (void (*)(bd_t *, ulong, ulong, ulong, ulong))hdr->ih_ep"?
 
3. When the kernel run to the "boot/simple/head.s"?
 
 
thanks a lot
 
 

poorbeyond
2007-07-22