From cf6ebc9953b90a78df941b609e7f83fbc356a446 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Tue, 19 Mar 2019 15:46:28 +0800 Subject: [PATCH] package minerva and dependencies --- default.nix | 6 ++++++ jtagtap.nix | 21 +++++++++++++++++++++ minerva.nix | 21 +++++++++++++++++++++ nmigen.nix | 23 +++++++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 default.nix create mode 100644 jtagtap.nix create mode 100644 minerva.nix create mode 100644 nmigen.nix diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..9c279ca --- /dev/null +++ b/default.nix @@ -0,0 +1,6 @@ +{ pkgs ? import {}}: +rec { + nmigen = pkgs.callPackage ./nmigen.nix {}; + jtagtap = pkgs.callPackage ./jtagtap.nix { inherit nmigen; }; + minerva = pkgs.callPackage ./minerva.nix { inherit nmigen; inherit jtagtap; }; +} diff --git a/jtagtap.nix b/jtagtap.nix new file mode 100644 index 0000000..064c92c --- /dev/null +++ b/jtagtap.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchFromGitHub, python3Packages, nmigen }: + +python3Packages.buildPythonPackage { + name = "jtagtap"; + + src = fetchFromGitHub { + owner = "lambdaconcept"; + repo = "jtagtap"; + rev = "cac2d0156d2b6495a94f11171a1cf143b33c8e5e"; + sha256 = "05l4asx61zrg6c13irwm4a4k6gyk4r3isfrfidsqnh4g6739bdmg"; + }; + + propagatedBuildInputs = [ nmigen ]; + + meta = with stdenv.lib; { + description = "A 32-bit RISC-V soft processor"; + homepage = "https://m-labs.hk/migen"; + license = licenses.bsd2; + maintainers = [ maintainers.sb0 ]; + }; +} diff --git a/minerva.nix b/minerva.nix new file mode 100644 index 0000000..61c660f --- /dev/null +++ b/minerva.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchFromGitHub, python3Packages, nmigen, jtagtap }: + +python3Packages.buildPythonPackage { + name = "minerva"; + + src = fetchFromGitHub { + owner = "lambdaconcept"; + repo = "minerva"; + rev = "2b94dd6be54a0d4542ef320405dfa8a15e8fac93"; + sha256 = "0w073nqvjh1vplmw463sz90ykfpz1mkmfmmglnqwhvp90p9ryhnr"; + }; + + propagatedBuildInputs = [ nmigen jtagtap ]; + + meta = with stdenv.lib; { + description = "A 32-bit RISC-V soft processor"; + homepage = "https://m-labs.hk/migen"; + license = licenses.bsd2; + maintainers = [ maintainers.sb0 ]; + }; +} diff --git a/nmigen.nix b/nmigen.nix new file mode 100644 index 0000000..99a70ab --- /dev/null +++ b/nmigen.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchFromGitHub, python3Packages, yosys, symbiyosys, yices }: + +python3Packages.buildPythonPackage { + name = "nmigen"; + + src = fetchFromGitHub { + owner = "m-labs"; + repo = "nmigen"; + rev = "d69a4e29a8e2492dc916d0c7e42d9337c8c6d4c5"; + sha256 = "04jndrml6zm9g0p61kd05kzviy0m0yf919c7g2hgdl9n2ja1aw4p"; + }; + + checkPhase = "PATH=${yosys}/bin:${symbiyosys}/bin:${yices}/bin:$PATH python -m unittest discover nmigen.test"; + + propagatedBuildInputs = [ python3Packages.bitarray python3Packages.pyvcd ]; + + meta = with stdenv.lib; { + description = "A refreshed Python toolbox for building complex digital hardware"; + homepage = "https://lambdaconcept.com"; + license = licenses.bsd2; + maintainers = [ maintainers.sb0 ]; + }; +}