I finally found out a simple method to boot from microSD.
I refered :
http://plugcomputer.org/plugwiki/index.php/SD_Card_As_Root_File_Systemhttp://paulfedora.wordpress.com/The procedure is :
1) My guruplug server plus recognizes the microSD as /dev/sdb, prepare microSD as:
#fdisk /dev/sdb
press "o" / create a new partition table
press "n" / create a new partition
press "p" / it's a primary partition
press "1" / partition #1
press enter / default first cylinder
press enter / default last cylinder
press "a" / set the boot flag
press "1" / ... for partition #1
press "w" / save changes
#mkfs -t ext3 /dev/sdb1
#mkdir /mnt/sdcard
#mount /dev/sdb1 /mnt/sdcard
2) copy files of Guruplug into microSD as:
#cp -axv / /mnt/sdcard
#cp -av /dev /mnt/sdcard
By about two steps, the bootable microSD is available
3) The next is how to boot the microSD, do
#ls -l /dev/sd*
brw-rw---- 1 root floppy 8, 0 2009-08-08 16:48 /dev/sda
brw-rw---- 1 root floppy 8, 16 2009-08-08 16:48 /dev/sdb
brw-rw---- 1 root floppy 8, 17 2009-08-08 16:48 /dev/sdb1
the major and minor device numbers for ‘/dev/sdb1′ which I put the rootfs on, are 8 and 17 respectively.
That number needs to be converted to hex, for entry in Uboot -- 8,17 in decimal converts to 8,11 in Hex,
for entry in Uboot this will be entered as ’0811′.
4) Reboot the GuruPlug and this time hit any key before the system boots into Debian. Once at the Marvell prompt type:
Marvell>> nand read.e 0x6400000 0x100000 0x400000
Marvell>> setenv bootargs console=ttyS0,115200 root=0811 rootdelay=10
Marvell>> bootm 0x6400000
This should boot the debian from microSD.
#df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 256716 0 256716 0% /lib/init/rw
udev 10240 716 9524 7% /dev
tmpfs 256716 4 256712 1% /dev/shm
rootfs 3846128 571692 3079064 16% /
tmpfs 256716 0 256716 0% /var/cache/apt
If you want to save the paramaters, and let it be true in the next time to boot, do
Marvell>> editenv x_bootargs_root
edit: ubi.mtd=2 root=0811 rootdelay=10
Marvell>> saveenv
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x40000 -- 100% complete.
Writing to Nand... done
Marvell>> reset
That all.