The existing instructions presume installing a new U-Boot for Dockstar and GoFlex Net. What we are doing is a little bit different. All we need though is the U-Boot environment to contain the appropriate boot sequence and to correctly describe the NAND layout to the kernel.
We need to add in the following helper definitions to the U-Boot environment:
$this->bbcode_second_pass_code('', ' nc_test=ping $ncip
nc_start=setenv stdin nc; setenv stdout nc; setenv stderr nc; version
bootcmd_fast=run ubi_boot; run usb_boot; run chain
bootcmd_go=run usb_boot; run ubi_boot; run chain
usb_boot=usb start; run usb_args ext2_kern ext2_boot; run ext2_rd ubi_fallback; usb stop
usb_args=setenv ext2_dev usb 0:1; setenv dev_args root=/dev/sda3 rootdelay=10 rootfstype=ext3; run set_bootargs
ubi_boot=run $ubi_args ubi_rd ubi_fallback
ubi_args=ubi_args_default
ubi_args_default=setenv dev_args ubi.mtd=root root=/dev/sda1; run set_bootargs
ubi_args_tmpfs=setenv dev_args ubi.mtd=root rootfstype=tmpfs; run set_bootargs
chain=nand read.e 0x800000 0x480000 0x80000; go 0x800200
mtdids=nand0=orion_nand
partition=nand0,2
ethact=egiga0
console=ttyS0,115200
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(pogoplug),-(root)
set_bootargs=setenv bootargs console=$console $mtdparts $dev_args netconsole=@$ipaddr/eth0,@$ncipk/
ext2_kern=mw $addr_kern 0 1; ext2load $ext2_dev $addr_kern /boot/uImage
ext2_rd=mw $addr_rd 0 1; ext2load $ext2_dev $addr_rd /uInitrd
ext2_boot=run ext2_rd boot_rd; run boot_kern
ubi_kern=mw $addr_kern 0 1; ubifsmount boot; ubifsload $addr_kern /boot/uImage
ubi_rd=mw $addr_rd 0 1; ubifsmount ramdisk; ubifsload $addr_rd /uInitrd\0" \
ubi_fallback=run ubi_kern boot_rd
boot_kern=bootm $addr_kern
boot_rd=bootm $addr_kern $addr_rd
addr_kern=0x680000
addr_rd=0x1100000
ipaddr=10.10.10.6
ncip=10.10.10.5
ncipk=10.10.10.4
serverip=10.10.10.3
')
Pay close attention to this line and modify it as appropriate for your existing, working, single disk boot - in particular, change root= and rootfstype= as appropriate:
$this->bbcode_second_pass_code('', '
usb_args=setenv ext2_dev usb 0:1; setenv dev_args root=/dev/sda3 rootdelay=10 rootfstype=ext3; run set_bootargs
')
When you are confident that all of those are correctly installed, you can switch the boot sequence over to use 'bootcmd_go':
$this->bbcode_second_pass_code('', '
bootcmd=ubi part root; run bootcmd_go
preboot=run nc_test nc_start
')
This should still boot correctly on your old single drive, but we can now start using some of the UBIT features such as the netconsole.
Next thing to do is to follow the instructions for setting up an install disk. We are not doing a full install so these will need to be modified, but see if you can get this far for now.
UBIT is documented at:
http://Arch Linux ARM.com/index.php5?title=Arch Linux ARM:UBIT