Changing SD card in sheevaplug fails to boot

When I replaced the SD card in my Sheevaplug this weekend, the device failed to boot from it. As it turns out, some SD cards are more quickly initialized than others. To fix this, follow these steps:

  1. Attach a min-USB cable to the plug device
  2. On a debian PC execute these steps to attach a serial console (you might need to reboot the unit):
modprobe usbserial vendor=0x9e88 product=0x9e8f
modprobe ftdi_sio vendor=0x9e88 product=0x9e8f
sudo apt-get install cu
chown uucp /dev/ttyUSB0
cu -s 115200 -l /dev/ttyUSB0
  1. In the u-boot console, “printenv bootcmd_mmc” will output something like this:
mmcinit; ext2load mmc 0:1 0x00800000 /uImage; ext2load mmc 0:1 0x01100000 /uInitrd
  1. The trick is to add another ‘mmcinit;’ step to give the device some extra time to initialize. Copy the value from step 3, add in another “mmcinit; ” like this:
setenv bootcmd_mmc 'mmcinit; mmcinit; ext2load mmc 0:1 0x00800000 /uImage; ext2load mmc 0:1 0x01100000 /uInitrd'
  1. Now save the u-boot environment and reboot:
saveenv
reboot

Adapted from http://info4admins.com/sheevaplug-boot-from-sd-card-fails-on-power-up/ and http://www.fredshack.com/docs/sheevaplug.html