Tools required

  • openocd
  • tftp-hpa
  • cross compiler

Cross-compiler:

cd customrepo
mkdir cross-armv5tel-softfloat-linux-gnueabi
ln -s ../gentoo/sys-devel/{gcc,binutils} cross-armv5tel-softfloat-linux-gnueabi
sudo cave resolve cross-armv5tel-softfloat-linux-gnueabi/gcc

Updating u-boot:

There are several repositories, but the official one is this one:
http://git.denx.de/u-boot.git. The maintainer of the official one actually recommends using the repos for each architecture, in the case of the SheevaPlug that would the Marvell repo:
git://git.denx.de/u-boot-marvell.git.

git init
git remote add marvell git://git.denx.de/u-boot-marvell.git
git fetch marvell
git checkout -b testing marvell/testing
cat <<EOF >GNUmakefile
CROSS_COMPILE ?= armv5tel-softfloat-linux-gnueabi-
include Makefile
EOF
make sheevaplug_config
make u-boot.kwb

Now you can try the new u-boot on your plug:

openocd -f /usr/share/openocd/scripts/board/sheevaplug.cfg

In another terminal (or screen)

telnet localhost 4444
> sheevaplug_init
> load_image /home/..../u-boot
> resume 0x0060000

Check the output of the load_image for the exact number to put
on the resume line.

If u-boot seems to run fine, you can flash it to the NAND on the plug with openocd again.
Copy the u-boot.kwb file to your tftp server and then from the u-boot prompt:

> dhcp
> tftp u-boot.kwb
> nand erase 0 0x60000
> nand write 0x200000 0 0x60000

The tftp command will have given you the address you should give to the nand
write command.