This is what I use to boot from a HDD in an external USB enclosure.
setenv bootcmd 'usb start; ext2load usb 0:1 0x8000000 /boot/uImage; bootm 0x8000000; reset'
setenv bootargs 'console=ttyS0,115200 root=/dev/sda5 rootdelay=10 rw'
For reference my HDD is partitioned as follows :
Disk /dev/sda: 40.0 GB, 40007761920 bytes
64 heads, 32 sectors/track, 38154 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 * 1 32 32752 83 Linux
/dev/sda2 33 38154 39036928 5 Extended
/dev/sda5 33 37432 38297584 83 Linux
/dev/sda6 37433 38154 739312 82 Linux swap / SolarisPartition sizes are in MB
sda1 is formatted ext2
sda5 is formatted ext3