[U-Boot-Users] questions booting Linux on a mpc8247

Jim Fridlund jim at code4fun.us
Thu May 11 07:47:42 CEST 2006


Hi Sam,

I'm a little closer. ;-) The Vision Probe failed
trying to run code at PC=0x00000000.

=> printenv
bootcmd=run flash_self
baudrate=57600
loads_echo=1
preboot=echo;echo Type "run flash_nfs" to mount root filesystem over
NFS;echo
netdev=eth0
nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath}
ramargs=setenv bootargs root=/dev/ram rw console=ttyS0,57600
addip=setenv bootargs ${bootargs}
ip=172.16.86.177:172.16.86.50:172.16.86.254:255.255.255.0:jim-r100:eth0:off
panic=1
flash_nfs=run nfsargs addip;bootm ${kernel_addr}
flash_self=run ramargs;bootm ${kernel_addr} ${ramdisk_addr}
net_nfs=tftp 200000 ${bootfile};run nfsargs addip;bootm
rootpath=/opt/eldk/ppc_82xx
bootfile=jim/uImage
kernel_addr=20000
ramdisk_addr=1200000
ethaddr=00:01:47:01:02:03
ipaddr=172.16.86.177
serverip=172.16.86.50
verify=y
stdin=serial
stdout=serial
stderr=serial
ethact=FCC1 ETHERNET
bootcount=49

Environment size: 798/65532 bytes
=> tftp 20000 jim/uImage.img
Using FCC1 ETHERNET device
TFTP from server 172.16.86.50; our IP address is 172.16.86.177
Filename 'jim/uImage.img'.
Load address: 0x20000
Loading: #################################################################
...
done
Bytes transferred = 2559141 (270ca5 hex)
=> tftp 1200000 jim/ram.img
Using FCC1 ETHERNET device
TFTP from server 172.16.86.50; our IP address is 172.16.86.177
Filename 'jim/ram.img'.
Load address: 0x1200000
Loading: #################################################################
...
done
Bytes transferred = 4767808 (48c040 hex)
=> run flash_self
## Booting image at 00020000 ...
   Image Name:   Linux
   Created:      2006-05-11   5:12:04 UTC
   Image Type:   PowerPC Linux Kernel Image (uncompressed)
   Data Size:    2559077 Bytes =  2.4 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
OK
## Loading RAMDisk Image at 01200000 ...
   Image Name:   Ramdisk
   Created:      2006-05-11   5:13:09 UTC
   Image Type:   PowerPC Linux RAMDisk Image (uncompressed)
   Data Size:    4767744 Bytes =  4.5 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Ramdisk to 07ae7000, end 07f73000 ... OK

This is the disassembled output at address 0 from the
Vision probe.

 $00000000   dc.l           0x7f454c46
 $00000004   dc.l           0x1020100
 $00000008   dc.l           0x0
 $0000000C   dc.l           0x0
 $00000010   dc.l           0x20014
 $00000014   dc.l           0x1
 $00000018   lfs            F0,0x0(R0)
 $0000001C   dc.l           0x34
 $00000020   dc.l           0x1e8634
 $00000024   dc.l           0x0
 $00000028   dc.l           0x340020
 $0000002C   dc.l           0x20028
 $00000030   dc.l           0x1b0018

It doesn't look like valid code and it sure
does not match the code that I'm expecting from
the vmlinux ELF image.

$ ${CROSS_COMPILE}objdump -d vmlinux  | head -20

vmlinux:     file format elf32-powerpc

Disassembly of section .text:

c0000000 <_start>:
c0000000:       60 00 00 00     nop
c0000004:       60 00 00 00     nop
c0000008:       60 00 00 00     nop

c000000c <__start>:
c000000c:       7c 7f 1b 78     mr      r31,r3
c0000010:       7c 9e 23 78     mr      r30,r4
c0000014:       7c bd 2b 78     mr      r29,r5
c0000018:       7c dc 33 78     mr      r28,r6
c000001c:       7c fb 3b 78     mr      r27,r7
c0000020:       3b 00 00 00     li      r24,0
c0000024:       48 1c 5c 21     bl      c01c5c44 <early_init>
c0000028:       48 00 37 11     bl      c0003738 <mmu_off>

For sure, the code at address 0 doesn't match
code at c0000000. So, I'm still probably not
doing something correctly in u-boot.

$ ${CROSS_COMPILE}nm --numeric-sort vmlinux | head -20
         w __start___kallsyms
         w __stop___kallsyms
00000005 a LG_CACHELINE_BYTES
0000000c a Hash_bits
0000001f a CACHELINE_MASK
00000020 a CACHELINE_BYTES
0003ffc0 a Hash_msk
c0000000 T _start
c0000000 T _stext
c000000c T __start
c000002c t __after_mmu_off
c0000064 t turn_on_mmu
c00000c4 T __secondary_hold
c0000100 t Reset
c0000190 t i0x100
c0000200 t MachineCheck
c0000290 t i0x200
c0000300 t DataAccess
c00003bc t i0x300
c0000400 t InstructionAccess

I'm a couple steps closer though. So, is multi-image boot
not supported?

Thanks again for your help.
--
Jim

Sam Song wrote:
> Jim Fridlund <jim at code4fun.us> wrote:
>>         "ramargs=setenv bootargs root=/dev/ram rw " 
>>                    \
>>         "console=ttyS0,57600\0"                     
> 
> Well, pls try 
> 
> => tftp 200000
> => setenv kernel_addr 200000
> => tftp 1200000 <ramdisk>
> => setenv ramdisk_addr 1200000
> => run flash_self
> 
> You cannot boot kernel at 0x100000.
> 
> Best regards,
> 
> Sam
> 
> 
> 		
> ___________________________________________________________ 
> 雅虎免费邮箱-3.5G容量,20M附件 
> http://cn.mail.yahoo.com/





More information about the U-Boot mailing list