[U-Boot-Users] Kernel hangs after decompressing.
DavidHo at nanometrics.ca
DavidHo at nanometrics.ca
Fri Sep 12 16:32:38 CEST 2003
Hi Wolfgang,
>> I copied the bd_info structure from u-boot.h to rpxclassic.h in the
kernel
> This is wrong. You should include ppcboot.h in rpxclassic.h.
Okay, I originally copied the structure from u-boot.h to ppcboot.h. But
seeing that another bd_t structure was declared in rpxclassic.h, I decided
to replace the structure in rpxclassic.h. Your approach is definitely more
elegant. Made the change to rpxclassic.h.
> This cannot work. The powerpc kernel requires load address == entry
> point = 0x0000.
Correct me if I'm wrong, I thought the kernel can be booted from any
location in memory, the startup code in the i386 tree can boot the kernel
from low and high memory. I should've been more faithful to the
documentation. =)
I set the kenrel load address back to 0x0000. I had to move the tftp load
address to 0x400000 so that it had enough space to decompress the kernel to
low memory. That was the problem I had before because by default tftp
loads uImage to 0x100000. But I'm back to the same problem again that as
soon as u-boot passes control to the kernel, it hangs without spitting a
single meaningful message to the console.
I really need someone to tell me what could possibly go wrong here. =)
I switched on the debug messages in hope you might spot something
interesting there.
>> I made the uImage from vmlinux in the top level directory and the
>> vmlinux.gz from arch/ppc but they hanged at the same point.
> Did you read the README? You should.
I used the very first method shown in the README to build the uImage from
vmlinux. I converted the it to a binary file, gzipped it and used mkimage
to build the final image file.
I then used the typical way of building the image that makes use of the
vmlinux.gz in arch/ppc/boot/images and run mkimage directly on it. The
only thing I haven't tried is building one from an uncompressed image.
Regards,
David Ho
U-Boot 0.4.0 (Sep 11 2003 - 14:44:53)
CPU: XPC860xxZPnnD4 at 50 MHz: 16 kB I-Cache 8 kB D-Cache FEC present
Board: EP860
I2C: ready
DRAM: 16 MB
Top of RAM usable for U-Boot at: 01000000
Reserving 130k for U-Boot at: 00fdf000
Reserving 132k for malloc() at: 00fbe000
Reserving 64 Bytes for Board Info at: 00fbdfc0
Reserving 44 Bytes for Global Data at: 00fbdf94
Stack Pointer at: 00fbdf78
New Stack Pointer is: 00fbdf78
Now running in RAM - U-Boot at: 00fdf000
FLASH: 16 MB
In: serial
Out: serial
Err: serial
U-Boot relocated to 00fdf000
Net: FEC ETHERNET
### main_loop entered: bootdelay=5
### main_loop: bootcmd="tftpboot; setenv bootargs root=/dev/nfs rw nfsroot
=$(ser
verip):$(rootpath) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):
$(hostname):
:off; bootm"
Hit any key to stop autoboot: 0
=> tftp
Trying FEC ETHERNET
TFTP from server 199.71.138.8; our IP address is 199.71.138.25
Filename 'uImage'.
Load address: 0x400000
Loading: #################################################################
#################################################################
###########################################
done
Bytes transferred = 883653 (d7bc5 hex)
=> bootm
## Booting image at 00400000 ...
Image Name: Linux Kernel Image
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 883589 Bytes = 862.9 kB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Current stack ends at 0x00FBDBF0 => set upper limit to 0x00800000
## cmdline at 0x007FFF00 ... 0x007FFF61
bd address = 0x00FBDFC0
memstart = 0x00000000
memsize = 0x01000000
flashstart = 0xFC000000
flashsize = 0x01000000
flashoffset = 0x00000000
sramstart = 0x00000000
sramsize = 0x00000000
immr_base = 0xFA200000
bootflags = 0x00000001
intfreq = 50 MHz
busfreq = 50 MHz
ethaddr = 00:10:EC:80:3B:49
IP addr = 199.71.138.25
baudrate = 9600 bps
No initrd
## Transferring control to Linux (at address 00000000) ...
More information about the U-Boot
mailing list