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 192.168.1.2 # IP of your TFTP server setenv ipaddr 192.168.1.200 bubt uboot.bin
The upgrade process will ask whether you want to change the environment:
**Warning** 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' saveenv
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…)