Guruplug uBoot and Kernel Update

For quiet some time I have had a couple of Guruplugs sitting on my desk. Recently I had the chance to have a play with them and decided to put Fedora on an SD card however ran into a few issues with an old version of uBoot. I decided to update uBoot and was then required to update the kernel version as well to get it to boot.

To do this you will need there jtag board. I used to following steps:

  1. Download the uBoot and kernel images from http://www.plugcomputer.org/downloads/guru-plug/ (the file uboot.guruplug.bin uImage-guruplug)
  2. Boot the Guruplug with the jtag board plugged in. When it prompts you with 
    Hit any key to stop autoboot:  3

    hit any key to stop boot and drop in to the uBoot cli

  3. Check you need to update by entering the version command
    Marvell>>; version
    U-Boot 2009.11-rc1-00602-g28a9c08-dirty (Feb 09 2010 - 18:15:21)
    Marvell-Plug2L

    As you can see it is running an old version. If you are running the latest version it will display:

    U-Boot 2010.03-01266-g42f7128 (May 23 2010 - 19:25:42)
    Marvell-GuruPlug
  4. Put the files downloaded before onto an tftp server that is reachable from the plugs
  5. Set the tftp server address and an ip address for the Guruplug using the commands:
    Marvell>> setenv serverip 192.168.1.20
    Marvell>> setenv ipaddr 192.168.1.6
  6. Next you need to specify the name of the tftp image and where to store it
    tftp 0x6400000 uboot.guruplug.bin
  7. Next write the image to NAND and reboot. When it has rebooted go back into the uBoot CLI
    nand erase 0x00000000 0x0100000
    nand write 0x6400000 0x0000000 0x80000
    reset 
  8. if you now issue the version command and get
    U-Boot 2010.03-01266-g42f7128 (May 23 2010 - 19:25:42)
    Marvell-GuruPlug
  9. Now we need to update the kernel image. First set the tftp server ip and Guruplug IP address as before
    Marvell>> setenv serverip 192.168.1.20
    Marvell>> setenv ipaddr 192.168.1.6
  10. Next get the kernel image of the tftp server
    Marvell>> tftpboot 0x6400000 uImage-guruplug 
  11. Next write the kernel image to nand
    nand erase 0x100000 0x400000
    nand write.e 0x6400000 0x100000 0x400000
  12. You should now be running the latest uBoot and Kernel. Now it is just a matter of following the instructions found at http://fedoraproject.org/wiki/Architectures/ARM/GuruPlug