[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