Hi Joel,
I'm using sel4 and HW on an SoM that is similar to the i.MX6 sabrelite.
If you have already a u-boot that is running (in EMMC or something similar), then u-boot should be able to boot from any partition that has a known file system on it (fat, extX, etc. depending of how it was built). Just put the file in the file system. I didn't use this method, and am unfortunately not able to tell you how you have to set your bootcmd variable for u-boot.
To boot the genode.img u-boot needs the command bootelf to be compiled in to u-boot. Alternatively you may boot a uImage (u-boot command is bootm), if your u-boot doesn't support bootelf. For this you have to add the following to your etc/build.conf RUN_OPT += --include image/uboot
For me the easiest way to test images on the i.MX6 is to start an uImage it via tftpboot. For this you add the following to your etc/build.conf RUN_OPT += --include load/tftp --load-tftp-base-dir <tftp-server-root>
Obviously you need a TFTP server on your development machine. Set the bootcmd variable to "tftpboot 0x12200000 uImage && bootm".
If you add RUN_OPT += --include log/serial --log-serial-cmd "picocom -b 115200 /dev/ttyUSB0" to your etc/build.conf, the serial output of the i.MX6 is immediately visible in the console you execute make in.
To the sel4 kernel, I have to say, beware of the (hidden) dragons! - I did need to thinker around with the source of the kernel itself, to be able to use the full 1GiB of memory the board has. - returning IRQs back to the kernel isn't possible, so disconnecting a client from the SD-Card driver and connect an other isn't possible. - and probably more I don't remember currently.
I hope I could help you, feel free to ask if something isn't clear.
Bset regards Primin