There are several versions of U-Boot available for Novena, and we're working on getting mainline U-Boot support. For now, we have very light patches on top of mainline that allow us to configure DDR3 memory, plus adding debian build support. Our repository is available on Github.
Building - .deb
Building U-Boot is very similar to other packages. To build a particular revision, specify its tag:
git clone https://github.com/xobs/u-boot-novena cd u-boot-novena git-buildpackage -us -uc --git-upstream-tag=v2014.10-novena-rc5
Building - development
To build a non-packaged version, check out the code, configure it, and build it:
git clone https://github.com/xobs/u-boot-novena cd u-boot-novena make novena_config make
U-Boot allows for a dual-stage bootloader, where an initial image configures DDR3 memory and then loads and jumps to a bigger bootloader file. The first stage is called SPL (Secondary Program Loader), and lives in the MBR outside of any partition. The second stage is called u-boot.img, and lives on the first partition.
Following the tradition of x86 bootloaders, the Novena version of U-Boot doesn't install itself to the system MBR directly. It will place u-boot.img and u-boot.spl into /boot, but it won't write them out. In order to install the SPL, we ship a simple script called novena-install-spl. This simply does a dd of the file to the specified disk.