Upgrading SheevaPlug’s U-Boot

Upgrading SheevaPlug’s U-Boot

This page describes how to install a new version of U-Boot on your SheevaPlug. U-Boot is the boot loader used on the SheevaPlug.

Version 3.4.19 integrates SD card support and improves support for FAT32 USB partitions (although USB support in general is still a bit flaky). Version 3.4.23 fixes a minor problem introduced in 3.4.19.

First of all, check which version of U-Boot is installed on your SheevaPlug to find out whether you have to perform this upgrade. Connect to U-Boot using the serial console and type:


This will show the version of U-Boot on your SheevaPlug. The important part is the Marvell version at the end of the line.

If you have to upgrade U-Boot, download the SheevaPlug U-Boot 3.4.19 binary and save it as uboot.bin. (We’ll use 3.4.19 rather than 3.4.23 because the latter showed some problems.)

There are different options to upgrade U-Boot on your SheevaPlug. If you have a TFTP server, I recommend the first option. If you don’t have a TFTP server, you can copy the U-Boot binary to a USB stick and load it from there.

  • TFTP: First of all, copy the file uboot.bin to your TFTP server. Then start your SheevaPlug, connect the serial console and type the following commands:
    setenv serverip # IP of your TFTP server
    setenv ipaddr
    bubt uboot.bin

    The upgrade process will ask whether you want to change the environment:

    If U-Boot Endiannes is going to change (LE->BE or BE->LE),
    Then Env parameters should be overridden..
    Override Env parameters? (y/n) n

    Make sure to answer “n” here.

  • USB: First of all, copy the U-Boot binary uboot.bin to a USB stick formated with the FAT filesystem. Then plug the USB stick into your SheevaPlug, connect the serial console and type the following commands:
    usb start
    fatload usb 0:1 0x0800000 uboot.bin
    nand erase 0x0 0xa0000
    nand write 0x0800000 0x0 0xa0000

Regardless of how you installed U-Boot, you now have to restart your machine to load the new version of U-Boot:


Now with your UBOOT at 3.4.19 you need to setup your Sheeva to boot from SD card full time (and how to boot Linux).  You’ll enter the following parameters one at a time exactly as shown here. Copy and paste into you serial terminal program of choice.

setenv mainlineLinux yes
setenv arcNumber 2097
setenv bootargs_console console=ttyS0,115200
setenv bootcmd_mmc 'mmcinit; mmcinit; ext2load mmc 0 0x0800000 /uInitrd; ext2load mmc 0 0x400000 /uImage'
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_mmc; bootm 0x400000 0x0800000'

Now you can insert your SD card and power cycle the device or just type (Mac users, power cycling without first disconnecting the USB cable can cause Mac panics, or dead driver, FTDI’s drivers do not handle APCI events cleanly…)