IntroductionI recently got my hands on a sheevaplug (SKU# RD-88F6281-BPLUG-A) thanks to my colleague Bill.The sheevaplug is a small form factor computer sporting Marvell Feroceon ARM-based CPU, this post describe how to upgrade u-boot, u-boot is the boot loader used by the sheevaplug. Connect to the sheeva plug consoleTo connected to the sheevaplug console, plug in the sheevaplug USB cable to your workstation, the sheevaplug console device (/dev/ttyUSB0) should show up, if not check that you have the usbserial and ftdi_sio modules loaded, change the permission on the device and connect to it using GNU screen: $ sudo chmod 0666 /dev/ttyUSB0$ screen /dev/ttyUSB0 115200Press Enter a couple of times, you should see the following prompt: Marvell>> Check the current u-boot versionBefore starting the upgrade procedure connect to your sheevaplug console and check the current version, who knows you might not need to upgrade: Marvell>> versionU-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16Apparently we are not running the latest u-boot version here, so let's proceed with the upgrade, there are two methods, one is to use a tftp server, the second one is to use a USB stick. First method: tftp serverfirst, setup a tftp server (here on a fedora box) then download the latest u-boot (u-boot 3.4.5 + pingtoo patch 01)and save it as /var/lib/tftpboot/uboot.bin: $ sudo yum install -y tftp-server$ sudo sed -i '/disable/ s/yes/no/g' /etc/xinetd.d/tftp$ sudo service xinetd startOnce your tftp server is setup connect the sheevaplug to your LAN and plug its USB console to your workstation, then issue the commands below (set the serverip and ipaddr according to your LAN setup): $ sudo chmod 0666 /dev/ttyUSB0U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16Marvell>> setenv serverip 192.168.1.100Marvell>> setenv ipaddr 192.168.1.200Marvell>> bubt uboot.binUsing egiga0 deviceTFTP from server 192.168.1.100; our IP address is 192.168.1.200Filename 'uboot.bin'.Load address: 0x2000000Loading: ################################################################# ############################doneBytes transferred = 474592 (73de0 hex)**Warning**If U-Boot Endiannes is going to change (LE->BE or BE->LE), Then Env parameters should be overriden..Override Env parameters? (y/n) nErase 0 - 655360 ... Copy to Nand Flash... doneMarvell>> resetSecond method: USB stick
To upgrade it using a USB stick, copy the uboot.bin on a FAT32 formatted USB stick and issue the following commands from the sheevaplug console:
ConclusionAfter the sheevaplug has rebooted, you should have the new version: Marvell>> versionU-Boot 1.1.4 (Dec 27 2009 - 22:03:21) Marvell version: 3.4.27 - pingtoo patch.01NOTE: For those of you who prefer bash to php, I wrote a bash script to replace the runme.php script included in the tarball, you can get it there. |