The first thing required will be a U-Boot that can handle both eSATA
and booting from SD card (the ex-factory version has the first, but not the second).
Here's one we received from "upstairs":
http://www.newit.co.uk/uboot/Download:
http://www.newit.co.uk/uboot/uboot-sata-090903.binhttp://www.newit.co.uk/uboot/uboot-sata-090903.bin.md5And verify it:
md5sum uboot-sata-090903.bin
4159cff10e66b99571eab4d529c88a7d uboot-sata-090903.bin
Version info:
U-Boot 1.1.4 (Jul 14 2009 - 06:46:57) Marvell version: 3.4.16
The version number is the same as the original ex-factory U-Boot, and other 3.4.16 versions may exist, but note the date is different here
Jul 14 2009 - 06:46:57Note: If you are chopping and changing between different versions of U-Boot, please pay special attention to your U-Boot environment variables. I don't know whether it was my own mistakes, or a corruption of environment variables as I loaded up different versions, but I have found myself with the usual boot errors at various times during testing / experimentation with different versions of U-Boot.
If you find yourself with a system that refuses to boot, please review your environment variables carefully and if necessary reset them to the original ex-factory settings. Those settings are the same as those for the non-eSATA plugs:
http://www.newit.co.uk/forum/index.php/topic,134.0.htmlOur advice is not to mess with U-Boot and alternative booting solutions if you don't know what you are doing. In the worst case scenario, you may find yourself spending some time resetting environment variables and in the worst case scenario, if you attempt to modify your NAND, you may lose the eSATA capability of your plug. (Most published versions of Sheevaplug software do not have eSATA capability).
I have a self-compiled eSATA capable kernel, but it is not ready for publishing here. (It is based upon those of cxbiker61, available at
sheeva.with-linux.com. I am working with 2.6.32.3, for what it is worth).
This is step #1, more to follow, hopefully sooner rather than later...
Here are the environment variables, in an easy / copy & paste format, so you can paste them into a console session.
setenv autoload no
setenv baudrate 115200
setenv bootargs 'console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none'
setenv bootargs_end :::DB88FXX81:eth0:none
setenv bootargs_root 'root=/dev/mtdblock2 ro'
setenv bootcmd 'nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'
setenv bootdelay 3
setenv CASset min
setenv cesvcid ULULULULULULPPULULULULULDA
setenv console 'console=ttyS0,115200'
setenv disaMvPnp no
setenv disL2Cache no
setenv disL2Prefetch yes
setenv enaAutoRecovery yes
setenv enaCpuStream no
setenv enaDCPref yes
setenv enaICPref yes
setenv enaMonExt no
setenv enaWrAllo no
setenv ethact egiga0
setenv ethmtu 1500
setenv ethprime egiga0
setenv image_name uImage
setenv ipaddr 192.168.1.101
setenv loadaddr 0x02000000
setenv loads_echo 0
setenv mainlineLinux no
setenv MALLOC_len 1
setenv mvNetConfig 'mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500'
setenv mvPhoneConfig 'mv_phone_config=dev0:fxs,dev1:fxs'
setenv nandEcc 1bit
setenv netbsd_en no
setenv netmask 255.255.0.0
setenv netretry no
setenv pexMode RC
setenv rcvrip 169.254.100.100
setenv rootpath /mnt/ARM_FS/
setenv run_diag no
setenv sata_dma_mode yes
setenv serverip 192.168.1.10
setenv setL2CacheWT yes
setenv 'standalone fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;'
setenv stderr serial
setenv stdin serial
setenv stdout serial
setenv usb0Mode host
setenv vxworks_en no
setenv yuk_ethaddr 00:00:00:EE:51:81
Not forgetting of course:
setenv ethaddr 00:50:43:01:xx:xx