aboutsummaryrefslogtreecommitdiff

relenv/novena

WARNING: Code for the Novena is no longer our primary development focus, so while there's no particular reason why recent versions of the base code should not work on the Novena, this has not been tested. Don't expect frequent updates to this repository.

Release engineering tree for the Cryptech code for the Novena PVT-1, initially targetted at what we need to package for IETF 93 in Praha.

General idea is to build two binary packages, one with the bitstream for the FPGA, one for software cross-compiled for the Novena. As a convenience, there's also a meta-package which just pulls in the first two as dependencies.

The current build setup is somewhat specific to the Novena (in particular, the use of the Debian package system), but the general outline will likely be reusable for other platforms in the future.

Overall structure of the current setup:

  • The top-level Makefile controls the overall build process. It does not run make directly on any of its subdirectories, instead it invokes the Debian package building tools with the right settings.

  • Each of the three packages generated has its own Makefile and debian/ directory. These Makefiles are intended to work with the Debian package building tools, and do not necessarily do anything useful if used in any other context.

  • Building the software package requires a cross-compiler, see the Debian cross compilation tools page.

  • Building the firmware package requires the XiLinx tools.

  • You'll also need the usual Debian package building tools, as well as Python and the python-yaml library.

  • The software and Verilog repositories are spliced into this one using git's submodule mechanism. The top-level Makefile attempts to automate all of the submodule voodoo needed for normal builds.