The QBoxHD uses two bootloaders. The first-stage bootloader is read-only, it cannot be rewritten and it’s used basically for disaster recovery. The second-stage bootloader does the real job because it loads the kernel and the initramfs according to the environment variables that you can modify.
With this configuration, the QBoxHD gives you the freedom to change the second-stage bootloader and obviously the initramfs and kernel. In the case that you want to do any experiment with it and later come back to the original configuration you know that the first-stage bootloader is always there.
If you only want to load a different kernel and/or initramfs, you just need to change the U-Boot environment as with a vanilla U-Boot version.
Both bootloaders are based on U-Boot 1.1.2 that is somewhat old, but it gives the necessary functionality.
The modifications were done, basically, for removing unneeded functionality and reduce their footprint in NOR flash.
Of course, you are free to update it to the latest U-Boot version provided by STLinux.
You can get both versions from here:
First-stage bootloader:
$ svn checkout https://www.qboxsvn.com/genesis/trunk genesis_trunk
Second-stage bootloader:
$ svn checkout https://www.qboxsvn.com/uboot/trunk uboot_trunk
Have fun!