cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
7,940 Views
Registered: ‎10-29-2009

Linux on a virtex4 ppc, problem when starting linux

I have a custom board with virtex4 pga, uartlite and lltemac. The pga use an external SDRAM (16MB) and doesn't use flash.

I ported uboot (xilinx-push-8-14-08) based on ml405 with uartlite and lltemac it seems work correctly.

I started to port the kernel (version xilinx_v2.6.26 and v2.6.23) with my xparameters enabling uartlite and uartlite as console. I don't use more recent kernel beacause I would like start with xparameters instead of device tree.

I download kernel image in external SDRAM and the checksum is correct so SDRAM works correctly.

When I boot the kernel there isn't any serial activity. The last print is "## Transferring control to Linux (at address 00000000) ..."

I don't know if kernel hang or if simply uartlite doesn't work. An old 2.4 kernel built for virtex 2 pro ppc with uartlite mapped in the same region starts and use correctly the uartlite.

I attach to the message the output of u-boot.

 

Any help is appreciated

Thanks in advance

 

### main_loop: bootcmd=""
Hit any key to stop autoboot:  0
=> tftp 300000 uImage.UBoot
LLTEMAC Initialization Started
Initializing FIFO...
Setting the MAC address...
LLTEMAC Initialization complete
TFTP from server 1.1.1.1; our IP address is 1.1.1.2
Filename 'uImage.UBoot'.
Load address: 0x300000
Loading: T #############################################
done
Bytes transferred = 656860 (a05dc hex)
=> bootm 300000
## Booting image at 00300000 ...
   Image Name:   Linux-2.6.26_MSR165EMB_0_1_0
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    656796 Bytes = 641.4 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
## Current stack ends at 0x00FC4278 => set upper limit to 0x00800000
## cmdline at 0x007FFF00 ... 0x007FFF00
bd address  = 0x00FC4788
memstart    = 0x00000000
memsize     = 0x01000000
flashstart  = 0x00000000
flashsize   = 0x00000000
flashoffset = 0x00000000
sramstart   = 0x00000000
sramsize    = 0x00000000
bootflags   = 0x01030000
intfreq     =     50 MHz
busfreq     =     50 MHz
ethaddr     = 00:50:69:6E:6F:22
IP addr     = 1.1.1.2
baudrate    =  19200 bps
No initrd
## Transferring control to Linux (at address 00000000) ...
 

0 Kudos
8 Replies
Highlighted
Xilinx Employee
Xilinx Employee
7,929 Views
Registered: ‎09-10-2008

You're not going to get much help with a kernel that old probably.

 

You're better off to move to the newer kernel and device tree rather than investing in somewhat dead code.

 

The device tree kernel has been out long enough that it's very stable and many know how to use it.

 

Sorry.

0 Kudos
Highlighted
Visitor
Visitor
7,917 Views
Registered: ‎10-29-2009

Thanks, I'll try the last kernel.

The last kernel is xilinx_v2.6.31 from xilinx git, is this correct?

And about u-boot xilinx-push-8-14-08 from xilinx git is a good version to use?

 

Regards   

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
7,900 Views
Registered: ‎09-10-2008

yes. 

0 Kudos
Highlighted
Visitor
Visitor
7,870 Views
Registered: ‎10-29-2009

Now I am using:

u-boot xilinx-push-8-14-08

linux xilinx_v2.6.31

 

Tthe kernel starts and log messages on uartlite

I try to boot with bootm kernel_addr initramfs_addr fdt_addr.

I get the following error:

 

fff00000.serial: ttyUL0 at MMIO 0xfff00003 (irq = 16) is a uartlite
console [ttyUL0] enabled
brd: module loaded
loop: module loaded
mice: PS/2 mouse device common for all mice
List of all partitions:
No filesystem could mount root, tried:  ext2 cramfs vfat msdos romfs
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

 

I'm unable to start with a filesystem.

I tried the solution listed in http://xilinx.wikidot.com/ram-disk-issues-with-device-tree but dtc detect an error on the line linux,initrd-start

 

        chosen {
                bootargs = "console=ttyUL0 ip=on root=/dev/ram";
                linux,stdout-path = "/plb@0/serial@FFF00000";
                linux,initrd-start = <00e69000>;
                linux,initrd-end = <00fbfe5c>;
         } ;

./scripts/dtc/dtc -O dtb arch/powerpc/boot/dts/virtex405-ml405.dts -S 20000 -R 4 > sc10.dtb

 

DTC: dts->dtb  on file "arch/powerpc/boot/dts/virtex405-ml405.dts"
arch/powerpc/boot/dts/virtex405-ml405.dts:26 syntax error
FATAL ERROR: Unable to parse input tree
 

 

I saw various references to the page http://xilinx.wikidot.com/configuring-building-and-loading-linux-after-9-1-08 that doesn't exist yet.

 

Could you help me?

 

Thanks in advance

0 Kudos
Highlighted
Visitor
Visitor
7,866 Views
Registered: ‎10-29-2009

Now I can use an initramfs with the following dts section

 

        chosen {
                bootargs = "console=ttyUL0 ip=on root=/dev/ram";
                linux,stdout-path = "/plb@0/serial@FFF00000";
                linux,initrd-start = <0x00e69000>;
                linux,initrd-end = <0x00fbfe5c>;
         } ;

 

Every time I change the filesystem I must modify the dtb, this is quite heavy; this is a u-boot problem? There are u-boot version with initrd addresses working when booting the kernel?

 

Regards

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
7,863 Views
Registered: ‎09-10-2008

I have not ever had to put the initrd start and end address in the device tree.  I used the directions on the wiki site at http://xilinx.wikidot.com/u-boot.

 

Have you tried it following our method on the wiki?

 

Thanks.

0 Kudos
Highlighted
Anonymous
Not applicable
7,859 Views

Are you trying to use initramfs or initrd  for your ramdisk? How are you generating your RFS image?

 

Terry

 

0 Kudos
Highlighted
Visitor
Visitor
7,856 Views
Registered: ‎10-29-2009

I generate initramfs starting from a directory on my developement computer.

My initramfs works correctlyt, the only problem is that I must specify his address range in the device tree.

As u-boot I use xilinx-push-8-14-08, may be that I need to configure something in u-boot, but I don't know what.

 

Regards

0 Kudos