about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix5
-rw-r--r--pkgs/development/tools/trellis/default.nix49
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 56 insertions, 0 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index f628d3d8d71e9..ec601841abb8a 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -3197,6 +3197,11 @@
     email = "patrick.callahan@latitudeengineering.com";
     name = "Patrick Callahan";
   };
+  q3k = {
+    email = "q3k@q3k.org";
+    github = "q3k";
+    name = "Serge Bazanski";
+  };
   qknight = {
     email = "js@lastlog.de";
     github = "qknight";
diff --git a/pkgs/development/tools/trellis/default.nix b/pkgs/development/tools/trellis/default.nix
new file mode 100644
index 0000000000000..892552559aa7e
--- /dev/null
+++ b/pkgs/development/tools/trellis/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, python3, cmake, boost }:
+
+let
+  trellisdb = fetchFromGitHub {
+    owner = "SymbiFlow";
+    repo  = "prjtrellis-db";
+    rev   = "06b429ddb7fd8ec1e3f2b35de2e94b4853cf2835";
+    sha256 = "07bsgw5x3gq0jcn9j4g7q9xvibvz6j2arjnvgyrxnrg30ri9q173";
+  };
+in
+stdenv.mkDerivation rec {
+  name = "trellis-${version}";
+  version = "2018.08.01";
+
+  buildInputs = [
+    (boost.override { python = python3; enablePython = true; })
+  ];
+
+  nativeBuildInputs = [
+    cmake python3
+  ];
+
+  src = fetchFromGitHub {
+    owner  = "SymbiFlow";
+    repo   = "prjtrellis";
+    rev    = "fff9532fe59bf9e38b44f029ce4a06c607a9ee78";
+    sha256 = "0ycw9fjf6428sf5x8x5szn8fha79610nf7nn8kmibgmz9868yv30";
+  };
+
+  preConfigure = ''
+    source environment.sh
+    cp -RT "${trellisdb}" database
+    cd libtrellis
+  '';
+
+  meta = {
+    description = "Documentation and tools for Lattice ECP5 FPGAs";
+    longDescription = ''
+      Project Trellis documents the Lattice ECP5 architecture
+      to enable development of open-source tools. Its goal is
+      to provide sufficient information to develop a free and
+      open Verilog to bitstream toolchain for these devices.
+    '';
+    homepage = https://github.com/SymbiFlow/prjtrellis;
+    license = stdenv.lib.licenses.isc;
+    maintainers = with stdenv.lib.maintainers; [ q3k ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3aa9a1bb35c6b..93e17b114880d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8624,6 +8624,8 @@ with pkgs;
 
   travis = callPackage ../development/tools/misc/travis { };
 
+  trellis = callPackage ../development/tools/trellis { };
+
   tweak = callPackage ../applications/editors/tweak { };
 
   uhd = callPackage ../development/tools/misc/uhd { };