Unable to boot kernel 2.6 from u-boot 1.1.4 in Xilinx ML403
Aleck Lin
aleck at gdatech.com
Fri Sep 1 12:28:32 EST 2006
Hi,
I'm working on booting kernel 2.6 on Xilinx. And I'm encountering a few
problems.
1. When I directly download zImage.elf to the RAM and boot from there, I see
the kernel starts booting, but it complains about not being able to mount
/dev/sysace/disc0/part2 and thus kernel panic happens.
The following is the output
---------------------------------------------------------------
loaded at: 00400000 004D313C
board data at: 004D1124 004D113C
relocated to: 004050F8 00405110
zimage at: 0040580D 004D0AA8
avail ram: 004D4000 04000000
Linux/PPC load: console=ttyS0,9600 ip=off root=/dev/xsysace/disc0/part2 rw
Uncompressing Linux...done.
Now booting the kernel
[ 0.000000] Linux version 2.6.17.8 (aleck at sac.gdatech.com) (gcc version
4.0.0 (DENX ELDK 4.0 4.0.0)) #2 Thu Aug 31 11:49:40 PDT 2006
[ 0.000000] Xilinx ML403 Reference System (Virtex-4 FX)
[ 0.000000] Built 1 zonelists
[ 0.000000] Kernel command line: console=ttyS0,9600 ip=off
root=/dev/xsysace/disc0/part2 rw
[ 0.000000] Xilinx INTC #0 at 0xD1000FC0 mapped to 0xFDFFEFC0
[ 0.000000] PID hash table entries: 512 (order: 9, 2048 bytes)
[ 0.000176] Console: colour dummy device 80x25
[ 0.000676] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.001452] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.015453] Memory: 63104k available (1268k kernel code, 468k data, 80k
init, 0k highmem)
[ 0.204374] Mount-cache hash table entries: 512
[ 0.209943] NET: Registered protocol family 16
[ 0.218843] NET: Registered protocol family 2
[ 0.264481] IP route cache hash table entries: 512 (order: -1, 2048
bytes)
[ 0.265267] TCP established hash table entries: 2048 (order: 1, 8192
bytes)
[ 0.265465] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.265569] TCP: Hash tables configured (established 2048 bind 1024)
[ 0.265599] TCP reno registered
[ 0.272471] io scheduler noop registered
[ 0.272558] io scheduler anticipatory registered (default)
[ 0.272626] io scheduler deadline registered
[ 0.272759] io scheduler cfq registered
[ 0.318755] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ
sharing disabled
[ 0.323749] serial8250.0: ttyS0 at MMIO 0xa0001003 (irq = 9) is a 16450
[ 2.026296] RAMDISK driver initialized: 16 RAM disks of 65536K size 1024
blocksize
[ 2.117598] tun: Universal TUN/TAP device driver, 1.6
[ 2.177338] tun: (C) 1999-2004 Max Krasnyansky <maxk at qualcomm.com>
[ 2.252474] mice: PS/2 mouse device common for all mice
[ 2.314381] TCP bic registered
[ 2.350802] NET: Registered protocol family 1
[ 2.402825] NET: Registered protocol family 17
[ 2.458051] VFS: Cannot open root device "xsysace/disc0/part2" or
unknown-block(0,0)
[ 2.549979] Please append a correct "root=" boot option
[ 2.612426] Kernel panic - not syncing: VFS: Unable to mount root fs on
unknown-block(0,0)
[ 2.711373] <0>Rebooting in 180 seconds..<NULL>
-----------------------------------------------------------
2. When I tried to boot the zImage (sitting in the flash) from u-boot file
(generated from the same source code as uImage.elf), as soon as it gives the
control to the kernel, no messages would come. I checked to make sure that I
had the right serial port setting (console=ttyS0,9600), but still nothing
shows up.
Here's the output of what I had (I turned on some extra debug msg in u-boot)
-------------------------------------------
### No HW ID - assuming ML403
DRAM: 64 MB
FLASH: 8 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 5 4 3 2 0
=> bootm 0xffa00000
## Booting image at ffa00000 ...
Image Name: Linux-2.6.17.8
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 832155 Bytes = 812.7 kB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Current stack ends at 0x03E62B70 => set upper limit to 0x00800000
## cmdline at 0x007FFF00 ... 0x007FFF3A
memstart = 0x00000000
memsize = 0x04000000
flashstart = 0xFF800000
flashsize = 0x00800000
flashoffset = 0x00000000
sramstart = 0x00000000
sramsize = 0x00000000
bootflags = 0x40401003
procfreq = 300 MHz
plb_busfreq = 100 MHz
ethaddr = 00:0A:35:00:22:01
IP addr = 192.168.10.111
baudrate = 9600 bps
No initrd
## Transferring control to Linux (at address 00000000) ...
------------------------------------------------------------
3. Lastly, whenever I issue a reset command in u-boot, it just locks up and
hangs. I have to do a hardware reset every time. I'm wondering if the reset
vector is going to a wrong place. How would I check that?
I'm fairly new to the whole embedded domain. Please feel free to help. It
would be much appreciated! Thanks.
Aleck
More information about the Linuxppc-embedded
mailing list