Wrong board info for ML403.
Leonid
Leonid at a-k-a.net
Fri Mar 16 01:37:30 EST 2007
Hi:
I'm trying to bring up Linux on Xilinx ML403 reference board.
I took 2.6.19.2 kernel from DENX. EDK project for ML403 I took from
official Xilinx site.
I could bring up u-boot on the board, everything is working fine (see
ml403.h file attached). Then I compiled uImage for kernel and tried to
download it - I don't see any kernel's outputs:
TFTP from server 192.168.0.141; our IP address is 192.168.0.203
Filename 'LM200/rel/1.0.1d-403/uImage'.
Load address: 0x1000000
Loading: T
#################################################################
#################################################################
#######################################
done
Bytes transferred = 861735 (d2627 hex)
## Booting image at 01000000 ...
Image Name: Linux-2.6.19.2
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 861671 Bytes = 841.5 kB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Current stack ends at 0x03E676F0 => set upper limit to 0x00800000
## cmdline at 0x007FFF00 ... 0x007FFFF8
memstart = 0x00000000
memsize = 0x04000000
flashstart = 0x28000000
flashsize = 0x00800000
flashoffset = 0x00000000
sramstart = 0x00000000
sramsize = 0x00000000
bootflags = 0x0000003C
procfreq = 300 MHz
plb_busfreq = 100 MHz
ethaddr = 00:01:02:CB:CB:71
IP addr = 192.168.0.203
baudrate = 115200 bps
No initrd
## Transferring control to Linux (at address 00000000) ...
I have read a lot of posts and reviewed the source code and I think
these kernel trees I'm using are properly patched for using u-boot; I
only included asm/ppcboot.h into xilinx_403.h:
/* U-boot expects the bd_t to look like the one in ppcboot.h, not like
this. */
#ifdef NOT_USING_UBOOT
typedef struct board_info {
unsigned int bi_memsize; /* DRAM installed, in
bytes */
unsigned char bi_enetaddr[6]; /* Local Ethernet MAC
address */
unsigned int bi_intfreq; /* Processor speed, in
Hz */
unsigned int bi_busfreq; /* PLB Bus speed, in Hz
*/
unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz
*/
} bd_t;
/* Some 4xx parts use a different timebase frequency from the internal
clock.
*/
#define bi_tbfreq bi_intfreq
#else
#include <asm/ppcboot.h>
#endif /* UBOOT */
Anyway I tried to compile zImage.elf and download it directly to RAM
using XMD. Here I had partial success: first time after FPGA image
downloading I try it, I see the following (it doesn't happen if I try to
repeat downloading again without reloading FPGA image first):
====
loaded at: 00400000 004DA13C
board data at: 004D8124 004D813C
relocated to: 00404090 004040A8
zimage at: 00404E1D 004D7401
avail ram: 004DB000 04000000
Linux/PPC load: console=ttyS0,115200
Uncompressing Linux...done.
Now booting the kernel
[ 0.000000] Linux version 2.6.19.2 (root at mylinux.a-k-a.local) (gcc
version 4.0.0 (DENX ELDK 4.1 4.0.0)) #6 Thu Mar 15 05:46:09 PST 2007
[ 0.000000] Xilinx ML403 Reference System (Virtex-4 FX)
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0 -> 16384
[ 0.000000] Normal 16384 -> 16384
[ 0.000000] early_node_map[1] active PFN ranges
[ 0.000000] 0: 0 -> 16384
[ 0.000000] Built 1 zonelists. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS0,115200
[ 0.000000] Xilinx INTC #0 at 0xD1000FC0 mapped to 0xFDFFEFC0
[ 0.000000] PID hash table entries: 256 (order: 8, 1024 bytes)
[ 0.000188] Console: colour dummy device 80x25
[ 0.000701] Dentry cache hash table entries: 8192 (order: 3, 32768
bytes)
[ 0.001489] Inode-cache hash table entries: 4096 (order: 2, 16384
bytes)
[ 0.015326] Memory: 63104k available (1324k kernel code, 436k data,
92k init, 0k highmem)
[ 0.108476] Mount-cache hash table entries: 512
[ 0.114051] NET: Registered protocol family 16
[ 0.128395] NET: Registered protocol family 2
[ 0.168472] IP route cache hash table entries: 512 (order: -1, 2048
bytes)
[ 0.169340] TCP established hash table entries: 2048 (order: 1, 8192
bytes)
[ 0.169539] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.169648] TCP: Hash tables configured (established 2048 bind 1024)
[ 0.169679] TCP reno registered
[ 0.173555] io scheduler noop registered
[ 0.173600] io scheduler anticipatory registered (default)
[ 0.173630] io scheduler deadline registered
[ 0.173756] io scheduler cfq registered
[ 0.221629] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ
sharing disabled
[ 0.227023] serial8250.0: ttyS0 at MMIO 0xa0001003 (irq = 9) is a
16450
[ 0.398738] RAMDISK driver initialized: 16 RAM disks of 65536K size
1024 blocksize
[ 0.407941] tun: Universal TUN/TAP device driver, 1.6
[ 0.412993] tun: (C) 1999-2004 Max Krasnyansky <maxk at qualcomm.com>
[ 0.420583] mice: PS/2 mouse device common for all mice
[ 0.426040] TCP cubic registered
[ 0.429347] NET: Registered protocol family 1
[ 0.433727] NET: Registered protocol family 17
[ 0.439482] VFS: Cannot open root device "<NULL>" or
unknown-block(0,0)
[ 0.446095] Please append a correct "root=" boot option
[ 0.451282] Kernel panic - not syncing: VFS: Unable to mount root fs
on unknown-block(0,0)
[ 0.459492] <0>Rebooting in 180 seconds..
I don't care about kernel panic for now - it's to be expected since I
don't provide any filesystem.
So, kernel itself is workable, it looks like uImage doesn't pick up
correct board info parameters from u-boot. Where u-boot write them and
where Linux looks for them? What is the simplest way to sync between
u-boot and kernel?
Thanks,
Leonid.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ml403.h
Type: application/octet-stream
Size: 9114 bytes
Desc: ml403.h
Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20070315/806bc785/attachment.obj
More information about the Linuxppc-embedded
mailing list