As for initrd , sure , the bootm command in U-Boot takes up to three arguments:
bootm <kernel uImage address> <initrd address> <FDT blob address>
So if you want your initrd to be passed to kernel , just supply the second argument.
Of course, you can also use initramfs and build the ramdisk into the kernel image if needed be. That's possible if you run 'make menuconfig' in the kernel source tree, navigate into 'General setup' -> 'Init RAM filesystem and RAM disk...' , check it and put path to your initramfs root dir into 'Initramfs source file(s)' . Note that if you have any /dev/ nodes in your initramfs's /dev/ , you might want to read Documentation/filesystems/ramfs-rootfs-initramfs.txt (you might want to read that anyway) section 'Populating initramfs' ...