cannot load rootfs in u-boot

penguin
Hi,

rootfs loaded with u-boot through ftp and written to nand is mounted by
linux but kernel panics with No init found message. The same rootfs image
uploaded via suprvivi (viq NOR) WORKS just fine even booted when flash
switch is in NAND position.
I have tried many images including root_qtopia-128M.img with exactly the
same effect. Could anyone kindly help me? I confess I am stuck.

I have copied bootargs from supervivi parameters.

bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 


here is console log

..............
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
Kernel command line: noinitrd root=/dev/mtdblock3 console=ttySAC0
init=/linuxrc
PID hash table entries: 256 (order: -2, 1024 bytes)

.......
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
yaffs: auto selecting yaffs2
block 213 is bad
block 1127 is bad
block 1191 is bad
block 1319 is bad
yaffs_read_super: isCheckpointed 0
VFS: Mounted root (yaffs filesystem) on device 31:3.
Freeing init memory: 152K
Warning: unable to open an initial console.
Failed to execute /linuxrc.  Attempting defaults...
Kernel panic - not syncing: No init found.  Try passing init= option to
kernel.


It is weird because kernel is loaded via u-boot works, only rootfs does not

I load rootfs with following commands 

MINI2440 # nand erase rootfs

NAND erase: device 0 offset 0x560000, size 0xfaa0000
Skipping bad block at 0x01fe0000                                           

Skipping bad block at  0x09220000                                          
 
Skipping bad block at  0x09a20000                                          
 
Skipping bad block at  0x0aa20000                                          
 
Skipping bad block at  0x0ff80000                                          
 
Skipping bad block at  0x0ffa0000                                          
 
Skipping bad block at  0x0ffc0000                                          
 
Skipping bad block at  0x0ffe0000                                          
 

OK
MINI2440 # tftp 0x31000000 root_qtopia-128M.img
dm9000 i/o: 0x20000300, id: 0x90000a46 
DM9000: running in 16 bit mode
MAC: 08:08:11:18:12:27
TFTP from server 172.24.219.7; our IP address is 172.24.219.8
Filename 'root_qtopia-128M.img'.
Load address: 0x31
Loading: T
#################################################################
         #################################################################
         #################################################################
.........
         #################################
done
Bytes transferred = 62008320 (3b22c00 hex)
MINI2440 # nand write.jffs2 0x31000000 rootfs 0x3b22c00

NAND write: device 0 offset 0x560000, size 0x3b23000

Bad block at 0x1fe0000 in erase block from 0x1fe0000 will be skipped
Writing data at 0x40a2800 -- 100% complete.
 62009344 bytes written: OK

penguin
I am sorry. Titus Breidung post from
http://www.friendlyarm.net/forum/topic/4495 really helped me.
nand write.yaffs 0x31000000 rootfs 0x3b22c00
did it.

I hope it will help others though.