U-boot PVT Notes

Overview
Novena uses a two-stage U-Boot architecture. The Secondary Program Loader, called SPL, is built using the same build system as the main U-Boot image.

SPL is responsible for setting up DDR3 memory (i.e. calibrating it and measuring trace lengths), loading the main U-Boot image from disk, and jumping to it. The rest is handled by the primary U-Boot image.

To customize U-Boot, modify include/configs/novena.h and change #define messages.

Building
git clone https://github.com/xobs/u-boot-novena.git cd u-boot-novena make novena_config  # sets up u-boot for novena configuration make -j3

Note: If you edit include/configs/novena.h, you should run "make novena_config" again.

Deploying
To install the primary U-Boot image, copy u-boot.img to /boot/. You do not need to do anything further.

If you're modifying very early code, such as DDR3 setup or booting from SATA, you'll need to install a new SPL file. To install the SPL image, you need to copy the file "SPL" to an offset 1024 bytes from the start of the disk. If you're running on Novena, use "novena-install-spl". See "man novena-install-spl" for more information. Otherwise, use dd:

sudo dd if="SPL" of="/dev/disk/by-path/platform-2198000.usdhc" bs=1024 seek=1 conv=notrunc