aboutsummaryrefslogtreecommitdiff
path: root/core/debian
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2015-07-05 19:43:38 -0400
committerRob Austein <sra@hactrn.net>2015-07-05 19:43:38 -0400
commite8f1bf514c1819cb9942d77bb624db4f6703fa8b (patch)
treed6b19edf237f3e85d4063881a83c849bfd4260d8 /core/debian
parent3f25e1bf5509f584f455e0e3ce369bc51b763f85 (diff)
Add Debian packaging and startup scripts to load Novena FPGA automatically.
Diffstat (limited to 'core/debian')
-rw-r--r--core/debian/control2
-rw-r--r--core/debian/cryptech-novena-rtl.default3
-rw-r--r--core/debian/cryptech-novena-rtl.init36
-rw-r--r--core/debian/cryptech-novena-rtl.postinst47
4 files changed, 87 insertions, 1 deletions
diff --git a/core/debian/control b/core/debian/control
index 84a4e91..3a3de4c 100644
--- a/core/debian/control
+++ b/core/debian/control
@@ -8,7 +8,7 @@ Homepage: http://trac.cryptech.is/wiki
Package: cryptech-novena-rtl
Architecture: all
-Depends: libc6 (>= 2.13), ${misc:Depends}
+Depends: libc6 (>= 2.13), ${misc:Depends} cryptech-novena-sw (= ${binary:Version})
Description: Cryptech open-source crypto hardware
"cryptech-novena-rtl" contains FGPA configuration (RTL bitstream) for the Cryptech project on
the Novena PVT-1 development board.
diff --git a/core/debian/cryptech-novena-rtl.default b/core/debian/cryptech-novena-rtl.default
new file mode 100644
index 0000000..1261cef
--- /dev/null
+++ b/core/debian/cryptech-novena-rtl.default
@@ -0,0 +1,3 @@
+# Configuration parameters for cryptech-novena-rtl package.
+
+fpga_bitstream=/usr/share/cryptech/novena_eim.bit
diff --git a/core/debian/cryptech-novena-rtl.init b/core/debian/cryptech-novena-rtl.init
new file mode 100644
index 0000000..68f5c8c
--- /dev/null
+++ b/core/debian/cryptech-novena-rtl.init
@@ -0,0 +1,36 @@
+#!/bin/sh -
+### BEGIN INIT INFO
+# Provides: cryptech-novena-rtl
+# Required-Start: $remote_fs
+# Required-Stop:
+# Should-Start:
+# Default-Start: S
+# Default-Stop:
+# Short-Description: Reload Novena FPGA on boot.
+# Description: Reload Novena FPGA on boot.
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+. /lib/lsb/init-functions
+. /etc/default/cryptech-novena-rtl
+
+do_start () {
+ log_daemon_msg "Loading Novena FPGA from ${fpga_bitstream}"
+ load_novena_fpga "${fpga_bitstream}"
+}
+
+case "$1" in
+ start|restart|reload|force-reload|"")
+ do_start
+ ;;
+ stop)
+ # No-op
+ ;;
+ *)
+ echo "Usage: bootmisc.sh [start|stop]" >&2
+ exit 3
+ ;;
+esac
+
+:
diff --git a/core/debian/cryptech-novena-rtl.postinst b/core/debian/cryptech-novena-rtl.postinst
new file mode 100644
index 0000000..d36653a
--- /dev/null
+++ b/core/debian/cryptech-novena-rtl.postinst
@@ -0,0 +1,47 @@
+#!/bin/sh -
+# postinst script for cryptech-novena-rtl
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# Perhaps this should run our /etc/init.d script in order to localize
+# the voodoo?
+
+load_fpga() {
+ load_novena_fpga /usr/share/cryptech/novena_eim.bit
+}
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <postinst> `abort-remove'
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ configure)
+ load_fpga
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0