As well as a Dockstar I have a Cubox and Trimslice. U-boot loads the kernel slightly different, it loads a (U-Boot wrapped) script file called boot.scr, which in turn loads kernel or whatever (uinitrd, dts)
I tested this, first making the boot.scr, then serial issued the commands (they would then be run from bootcmd if I wanted it permanent). So here is my first crude attempt on a dockstar, note that if ; is used as a separator it exectues next command regardless, if && is used and command fails it doesn't finish rest of line
My boot.txt file
$this->bbcode_second_pass_code('', 'echo ======== Starting boot ========
setenv uimagearg 'uImage'
setenv uinitarg 'uInitrd'
setenv my1arg 'elevator=bfq console=tty1,115200n8 console=ttyS0,115200 rootfstype=ext3 rootwait'
ext2load usb 0:1 0x800000 /boot/${uimagearg} && setenv bootargs ${my1arg} 'root=/dev/sda1 rw' && bootm 0x800000
ext2load usb 0:2 0x800000 /boot/${uimagearg} && setenv bootargs ${my1arg} 'root=/dev/sda1 rw' && bootm 0x800000
ext2load usb 0:3 0x800000 /boot/${uimagearg} && setenv bootargs ${my1arg} 'root=/dev/sda1 rw' && bootm 0x800000
ext2load usb 0:4 0x800000 /boot/${uimagearg} && setenv bootargs ${my1arg} 'root=/dev/sda1 rw' && bootm 0x800000')
How to wrap
$this->bbcode_second_pass_code('', 'mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Boot script" -d boot.txt boot.scr')
boot.scr goes in / of drive
Now the command issued from U-boot
$this->bbcode_second_pass_code('', 'usb start ; ext2load usb 0:1 0x800000 /boot.scr ; source 0x800000')
Did I say this works? It does.
Advantage is you can easily alter things like kernel args, and you can make universal boot.scr that tries different media in what order you want (done this for Cubox already), once you reach the bootm the kernel will load and script is finished