[U-Boot-Users] Trouble booting Linux

Jeremy Bowen Jeremy.Bowen at opennw.com
Mon Mar 31 06:44:01 CEST 2003


Hi there

I'm having a little trouble with u-boot. I'm using an RPXlite 850CW
development board and have version 0.2.0 of u-boot. I can boot a raw Linux
kernel but I cannot boot using the u-boot mkimage version with the "bootm"
command. 

Linux kernel sources are v2.4.7

The process that seems to work for me is as follows:
1) Make a "zImage" target of the Linux kernel.

2) "tftpboot" this to the development board (loadaddr=0x400000)

3) => go 0x400000
## Starting application at 0x00400000 ...
loaded at:     00400000 0040C204
board data at: 004001C0 004001E4
relocated to:  00500100 00500124
zimage at:     0040C204 004B8601
initrd at:     004B8601 00810FDF
avail ram:     00811000 01000000

Linux/PPC load: console=ttyS0,9600 root=/dev/ram
Uncompressing Linux... done.
Now booting the kernel

And the kernel starts up OK (well almost. see ** later).


If I make a uImage manually with: (u-boot compiled with -DDEBUG)

1) mkimage -n "Linux Kernel Image" -A ppc -O linux -T kernel -C gzip \
   -a 0 -e o -d ../images/vmlinux.gz ../images/uImage

2) "tftpboot" this file into the board and then do the following:

3) => tftpboot
Trying SCC ETHERNET
ARP broadcast 1
Got good ARP - start TFTP
TFTP from server 192.168.240.46; our IP address is 192.168.240.241
Filename 'uImage'.
Load address: 0x00400000
Loading: #################################################################
         #################################################################
         ########
done
Bytes transferred = 705597 (ac43d hex)
=> imi

## Checking Image at 00400000 ...
   Image Name:   Linux Kernel Image
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    705533 Bytes = 688.10 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
=> bootm 0x400000
## Booting image at 00400000 ...
   Image Name:   Linux Kernel Image
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    705533 Bytes = 688.10 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
## Current stack ends at 0x00F97C18 => set upper limit to 0x00800000
## cmdline at 0x007FFF00 ... 0x007FFF00
bd address  = 0x00F97FC4
memstart    = 0x00000000
memsize     = 0x01000000
flashstart  = 0xFF800000
flashsize   = 0x00400000
flashoffset = 0x00000000
sramstart   = 0x00000000
sramsize    = 0x00000000
immr_base   = 0xFA200000
bootflags   = 0x00000001
intfreq     =     48 MHz
busfreq     =     48 MHz
ethaddr     = 00:10:EC:00:1D:0B
IP addr     = 192.168.240.241
baudrate    =   9600 bps
No initrd
## Transferring control to Linux (at address 00000000) ...

At this point, the device hangs. Can anyone see anything obvious that I'm
doing wrong ? Am I loading to the correct address ? 



** Finally, I don't know if this is related or not, but I can get a working
system with an nfs root filesystem. However if I compile in an "initrd"
target, I have trouble when the Linux kernel uncompresses the RAM disk
image. It appears as though there is some kind of big/little endian problem
with the EXT2 fs image (or the configuration of my memory somehow) I get as
far as the following kernel messages.

RAMDISK: Compressed image found at block 0
CRC error
Freeing initrd memory: 1328k freed
EXT2-fs warning: checktime reached, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem).
Mounted devfs on /dev
EXT2-fs error (device ramdisk(1,0)): ext2_check_page: bad entry in directory
#126: rec_len is s
maller than minimal - offset=0, inode=0, rec_len=0, name_len=0
EXT2-fs error (device ramdisk(1,0)): ext2_check_page: bad entry in directory
#54: rec_len is sm
aller than minimal - offset=0, inode=0, rec_len=0, name_len=0
attempt to access beyond end of device
01:00: rw=0, want=150994949, limit=8192
attempt to access beyond end of device
01:00: rw=0, want=167772165, limit=8192
attempt to access beyond end of device
01:00: rw=0, want=184549381, limit=8192
...etc.

150994949 = 0x09000005
167772165 = 0x0A000005
184549381 = 0x0B000005

I'm guessing these numbers should be 0x50900,0x50A00 and 0x50B00 but I'm not
sure. 

(I've also tried creating a MINIX filesystem RAM disk image using a the
RPXlite board itself and an nfs mounted root filesystem but this also seems
to fail to uncompress correctly.) 

Any help would be greatly appreciated.

Thanks in advance

Jeremy Bowen
Senior Software Engineer
OPEN Networks
Phone: +64 4 384 8045
Fax: +64 4 384 8025
Web: www.opennw.com




More information about the U-Boot mailing list