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.