Hi crunch, hope you are still working on this problem. anyway I have something for you to test. a u-boot at 2010-12 with a lots of options enabled, a linxe kernel-2.6.32-r7-unionfs, a initramfs of my custom build and a simple u-boot environment setup image file.
you will needd to use openocd to load uboot to memeory and place kernel,initrams and envsrc.uimg to the tftp server following my instruction we shold be good to go.
1. load u-boot, at command prompt: openocd -f /path/to/board/guruplug.cfg -s /path/to/board/..
# I am using guruplug -installer directory structure. lets say your guruplug-installer is
# at /tmp/guruplug-installer/, under /tmp/guruplug-install there should be a "openocd" dir
# so for example you can, cd /tmp/guruplug-install,
# openocd -f ./board/guruplug.cfg -s ./openocd.
2, on second windows do
telnet localhost 4444
3. at prompt do, ######### you should have third window ready connect to /dev/ttyUSB0
guruplug_init
load_image /path/to/where/you/save/u-boot.bin 0x600000 #You must use full path.
resume 0x600000
4. at the window that connect to ttyUSB0, interrupt autoboot.
U-Boot 2010.12-dirty (Mar 28 2011 - 18:39:13)
Marvell-GuruPlug
SoC: Kirkwood 88F6281_A1
DRAM: 512 MiB
NAND: 512 MiB
In: serial
Out: serial
Err: serial
Net: egiga0 [PRIME], egiga1
88E1121 Initialized on egiga0
88E1121 Initialized on egiga1
Hit any key to stop autoboot: 0
5. At the third windows with
Marvell>> we need to setup for network transfer, so if you have dhcp environment handy then you can simply run "dhcp" this will setup "ipaddr" and "serverip" hopefully,
6 or you can manually setup network,
Marvell>> setenv ipaddr xxx.xxx.xxx.xxx(your plug ip address)
Marvell>> setenv serverip xxx.xxx.xxx.xxx(your tftp server address)
7 now first load the u-boot environment variables image file,
Marvell>> tftp 0x800000 /path/to/envsrc.uImg
Marvell>> imi 0x800000
## Checking Image at 00800000 ...
Legacy image found
Image Name: u-boot env
Image Type: ARM U-Boot Script (uncompressed)
Data Size: 647 Bytes = 647 Bytes
Load Address: 00000000
Entry Point: 00000000
Contents:
Image 0: 639 Bytes = 639 Bytes
Verifying Checksum ... OK
Marvell>> env default -f
Marvell>> source 0x800000
8. the envsrc.uImg setup some assumuption for location of kernel and initramfs file. so if they don't match your setup you can change by
Marvell>> setenv tftpinitrdfile /path/to/guru-initramfs.uImg
Marvell>> setenv tftpkernelfile /path/to/guru-uImage
9. if you are sure the "tftpinitrdfile" and "tftpkernelfile" are correct match you setup then we are read to load them to memory,
Marvell>> run tftp_load_ki
10. after load successful we verify that we have good images in memory by,
Marvell>> imi ${k}
## Checking Image at 02000000 ...
Legacy image found
Image Name: Linux-2.6.32-gentoo-r7
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1222036 Bytes = 1.2 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
Marvell>> imi ${i}
## Checking Image at 01100000 ...
Legacy image found
Image Name: Guruplug initramfs 20100529
Image Type: ARM Linux RAMDisk Image (lzma compressed)
Data Size: 2820877 Bytes = 2.7 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
11. if everything looks ok, we are ready to boot, if you have a UBI based rootfs and your rootfs volumne is "rootfs" then you can try to run
Marvell>> run bootmki_ubi
or else you can boot into initramfs by
Marvell>> run bootmki_interactive
12. if everything went will, you should see all the normal kernel boot up messages. if not then post what ever happen and we will work from there.
Good luck :-)