The small 'uboot' bootloader (similar to Grub or LILO on x86) normally has to be on an SD card, but can be configured so that everything from that point on, including the kernel is loaded from a SATA-attached SSD or HD. The i.MX6 does allow for alternate boot modes, including direct from SATA, though this requires changing the states of either one-time-programmable eFuses or GPIO hardware signals. I haven't looked into this in enough detail to say whether Udoo exposes all necessary signals (some appear to be wired up to the SAM3X chip!), but if you're interested, see Chapter 8 in the Freescale reference manual (IMX6DQRM.pdf -- Google for that name. It's a 5000+ page monster). Unless you want to free up the SD slot for another purpose, just chaining SD(uboot) -> SATA (kernel, rootfs) is likely to be a lot easier.