Maybe you can reference to the WinCE XLDR, this is the first bootloader for iMX WinCE design, the size is about 8KB only, as default this loader will load the real bootloader EBOOT from storage device to RAM, of cource, if we removed the flash header (this is only used by boot ROM code, and it should be included in the first bootloader) from the UBoot, I think this XLDR can also load the UBoot to memory.
I think if there are two different bootloader on storage device, the difference for the first loader to load them are the base address, data length and the target RAM address.