generated from saji/ecp5-template
add flake/nix formatter (nixfmt)
Some checks failed
Verilator Unit Tests / Test (push) Failing after 3m35s
Some checks failed
Verilator Unit Tests / Test (push) Failing after 3m35s
This commit is contained in:
parent
79927f0cbd
commit
ccdbc98cb0
135
flake.nix
135
flake.nix
|
@ -3,82 +3,75 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
flake-parts = {
|
flake-parts = {
|
||||||
url = "github:hercules-ci/flake-parts";
|
url = "github:hercules-ci/flake-parts";
|
||||||
inputs.nixpkgs-lib.follows = "nixpkgs";
|
inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{flake-parts, ... }:
|
outputs =
|
||||||
flake-parts.lib.mkFlake { inherit inputs; } {
|
inputs@{ flake-parts, ... }:
|
||||||
# flake = let
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
# in {
|
|
||||||
# };
|
|
||||||
# devShells."x86_64-linux".default = pkgs.mkShell {
|
|
||||||
# packages = with pkgs; [
|
|
||||||
# (python3.withPackages (pypkgs: with pypkgs; [
|
|
||||||
# amaranth
|
|
||||||
# amaranth-boards
|
|
||||||
# ]))
|
|
||||||
# yosys
|
|
||||||
# nextpnr
|
|
||||||
# # simulators
|
|
||||||
# iverilog
|
|
||||||
# verilator
|
|
||||||
# # support package
|
|
||||||
# trellis
|
|
||||||
# # loader
|
|
||||||
# openfpgaloader
|
|
||||||
# ecpdap # easier to poke probes.
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
|
systems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
"aarch64-darwin"
|
||||||
|
"x86_64-darwin"
|
||||||
|
];
|
||||||
|
|
||||||
perSystem = {config, self', inputs', pkgs, system, ...}: {
|
perSystem =
|
||||||
packages.default = pkgs.python3.pkgs.buildPythonPackage {
|
{
|
||||||
name = "groovylight";
|
config,
|
||||||
version = "0.0.1";
|
self',
|
||||||
src = ./.;
|
inputs',
|
||||||
format = "pyproject";
|
pkgs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
formatter = pkgs.nixfmt-rfc-style;
|
||||||
|
packages.default = pkgs.python3.pkgs.buildPythonPackage {
|
||||||
|
name = "groovylight";
|
||||||
|
version = "0.0.1";
|
||||||
|
src = ./.;
|
||||||
|
format = "pyproject";
|
||||||
|
|
||||||
build-system = [pkgs.python3.pkgs.pdm-backend];
|
build-system = [ pkgs.python3.pkgs.pdm-backend ];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
pkgs.python3.pkgs.amaranth
|
pkgs.python3.pkgs.amaranth
|
||||||
pkgs.python3.pkgs.amaranth-boards
|
pkgs.python3.pkgs.amaranth-boards
|
||||||
];
|
];
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
nativeCheckInputs = with pkgs; [
|
nativeCheckInputs = with pkgs; [
|
||||||
python3.pkgs.pytestCheckHook
|
python3.pkgs.pytestCheckHook
|
||||||
yosys
|
yosys
|
||||||
nextpnr
|
nextpnr
|
||||||
trellis
|
trellis
|
||||||
openfpgaloader
|
openfpgaloader
|
||||||
];
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
(python3.withPackages (pypkgs: with pypkgs; [
|
(python3.withPackages (
|
||||||
amaranth
|
pypkgs: with pypkgs; [
|
||||||
amaranth-boards
|
amaranth
|
||||||
]))
|
amaranth-boards
|
||||||
self'.packages.default
|
self'.packages.default
|
||||||
yosys
|
]
|
||||||
nextpnr
|
))
|
||||||
# simulators
|
yosys
|
||||||
iverilog
|
nextpnr
|
||||||
verilator
|
# support package
|
||||||
# support package
|
trellis
|
||||||
trellis
|
# loader
|
||||||
# loader
|
openfpgaloader
|
||||||
openfpgaloader
|
ecpdap # easier to poke probes.
|
||||||
ecpdap # easier to poke probes.
|
];
|
||||||
];
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,24 @@
|
||||||
# an overlay to
|
# an overlay to
|
||||||
let
|
let
|
||||||
tag = "2023.12";
|
tag = "2023.12";
|
||||||
in final: prev: {
|
in
|
||||||
wishbone-tool = prev.callPackage(import ./wishbone-tool.nix) { };
|
final: prev: {
|
||||||
|
wishbone-tool = prev.callPackage (import ./wishbone-tool.nix) { };
|
||||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||||
(python-final: python-prev: {
|
(python-final: python-prev: {
|
||||||
litex = python-final.callPackage(import ./litex.nix tag) { };
|
litex = python-final.callPackage (import ./litex.nix tag) { };
|
||||||
litedram = python-final.callPackage(import ./litedram.nix tag) { };
|
litedram = python-final.callPackage (import ./litedram.nix tag) { };
|
||||||
liteeth = python-final.callPackage(import ./liteeth.nix tag) { };
|
liteeth = python-final.callPackage (import ./liteeth.nix tag) { };
|
||||||
litescope = python-final.callPackage(import ./litescope.nix tag) { };
|
litescope = python-final.callPackage (import ./litescope.nix tag) { };
|
||||||
litespi = python-final.callPackage(import ./litespi.nix tag) { };
|
litespi = python-final.callPackage (import ./litespi.nix tag) { };
|
||||||
liteiclink = python-final.callPackage(import ./liteiclink.nix tag) { };
|
liteiclink = python-final.callPackage (import ./liteiclink.nix tag) { };
|
||||||
pythondata-cpu-vexriscv = python-final.callPackage(import ./pythondata-cpu-vexriscv.nix tag) { };
|
pythondata-cpu-vexriscv = python-final.callPackage (import ./pythondata-cpu-vexriscv.nix tag) { };
|
||||||
pythondata-software-compiler_rt = python-final.callPackage(import ./pythondata-software-compiler_rt.nix tag) { };
|
pythondata-software-compiler_rt =
|
||||||
pythondata-software-picolibc = python-final.callPackage(import ./pythondata-software-picolibc.nix tag) { };
|
python-final.callPackage (import ./pythondata-software-compiler_rt.nix tag)
|
||||||
|
{ };
|
||||||
|
pythondata-software-picolibc =
|
||||||
|
python-final.callPackage (import ./pythondata-software-picolibc.nix tag)
|
||||||
|
{ };
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
tag: {
|
tag:
|
||||||
pkgs
|
{
|
||||||
, lib
|
pkgs,
|
||||||
, buildPythonPackage
|
lib,
|
||||||
, migen
|
buildPythonPackage,
|
||||||
, pyyaml
|
migen,
|
||||||
}: buildPythonPackage {
|
pyyaml,
|
||||||
|
}:
|
||||||
|
buildPythonPackage {
|
||||||
pname = "litedram";
|
pname = "litedram";
|
||||||
version = "${tag}";
|
version = "${tag}";
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
tag: {
|
tag:
|
||||||
pkgs
|
{
|
||||||
, lib
|
pkgs,
|
||||||
, buildPythonPackage
|
lib,
|
||||||
, migen
|
buildPythonPackage,
|
||||||
, setuptools
|
migen,
|
||||||
, litex
|
setuptools,
|
||||||
, pyyaml
|
litex,
|
||||||
}: buildPythonPackage {
|
pyyaml,
|
||||||
|
}:
|
||||||
|
buildPythonPackage {
|
||||||
pname = "liteeth";
|
pname = "liteeth";
|
||||||
version = "${tag}";
|
version = "${tag}";
|
||||||
|
|
||||||
|
@ -17,17 +19,11 @@ tag: {
|
||||||
hash = "sha256-DUNwDzcFLVmL5F/ZWmok7T7jO7ixC9IuDr1WUarnAqk=";
|
hash = "sha256-DUNwDzcFLVmL5F/ZWmok7T7jO7ixC9IuDr1WUarnAqk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [ litex ];
|
||||||
litex
|
|
||||||
];
|
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [ migen ];
|
||||||
migen
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeCheckInputs = [
|
nativeCheckInputs = [ pyyaml ];
|
||||||
pyyaml
|
|
||||||
];
|
|
||||||
|
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
python -m unittest test
|
python -m unittest test
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
tag: {
|
tag:
|
||||||
pkgs
|
{
|
||||||
, buildPythonPackage
|
pkgs,
|
||||||
, litex
|
buildPythonPackage,
|
||||||
}: buildPythonPackage {
|
litex,
|
||||||
|
}:
|
||||||
|
buildPythonPackage {
|
||||||
pname = "liteiclink";
|
pname = "liteiclink";
|
||||||
version = "${tag}";
|
version = "${tag}";
|
||||||
|
|
||||||
|
@ -13,9 +15,7 @@ tag: {
|
||||||
hash = "sha256-5Hp5vFqmfkXo1q60FvOkToTy952svirChIPIvkam04M=";
|
hash = "sha256-5Hp5vFqmfkXo1q60FvOkToTy952svirChIPIvkam04M=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [ litex ];
|
||||||
litex
|
|
||||||
];
|
|
||||||
|
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
python -m unittest test
|
python -m unittest test
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
tag: {
|
tag:
|
||||||
pkgs
|
{
|
||||||
, lib
|
pkgs,
|
||||||
, buildPythonPackage
|
lib,
|
||||||
, migen
|
buildPythonPackage,
|
||||||
, setuptools
|
migen,
|
||||||
, litex
|
setuptools,
|
||||||
}: buildPythonPackage {
|
litex,
|
||||||
|
}:
|
||||||
|
buildPythonPackage {
|
||||||
pname = "litescope";
|
pname = "litescope";
|
||||||
version = "${tag}";
|
version = "${tag}";
|
||||||
|
|
||||||
|
@ -16,9 +18,7 @@ tag: {
|
||||||
hash = "sha256-OWC+XwB+BzlCQkPKJCbQ0W4T6JbsInldrn9jYYjWypM=";
|
hash = "sha256-OWC+XwB+BzlCQkPKJCbQ0W4T6JbsInldrn9jYYjWypM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [ litex ];
|
||||||
litex
|
|
||||||
];
|
|
||||||
|
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
python -m unittest test
|
python -m unittest test
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
tag: {
|
tag:
|
||||||
pkgs
|
{
|
||||||
, lib
|
pkgs,
|
||||||
, buildPythonPackage
|
lib,
|
||||||
, migen
|
buildPythonPackage,
|
||||||
, setuptools
|
migen,
|
||||||
, litex
|
setuptools,
|
||||||
}: buildPythonPackage {
|
litex,
|
||||||
|
}:
|
||||||
|
buildPythonPackage {
|
||||||
pname = "litespi";
|
pname = "litespi";
|
||||||
version = "${tag}";
|
version = "${tag}";
|
||||||
|
|
||||||
|
@ -16,16 +18,11 @@ tag: {
|
||||||
hash = "sha256-XYeWokF1IGtZWRK+6jhRSN91MOV5vyh5aO08sbtFBxw=";
|
hash = "sha256-XYeWokF1IGtZWRK+6jhRSN91MOV5vyh5aO08sbtFBxw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [ litex ];
|
||||||
litex
|
|
||||||
];
|
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [ migen ];
|
||||||
migen
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeCheckInputs = [
|
nativeCheckInputs = [ ];
|
||||||
];
|
|
||||||
|
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
python -m unittest test
|
python -m unittest test
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
tag: {
|
tag:
|
||||||
pkgs
|
{
|
||||||
, lib
|
pkgs,
|
||||||
, buildPythonPackage
|
lib,
|
||||||
, pyserial
|
buildPythonPackage,
|
||||||
, migen
|
pyserial,
|
||||||
, requests
|
migen,
|
||||||
, packaging
|
requests,
|
||||||
, pexpect
|
packaging,
|
||||||
}: buildPythonPackage {
|
pexpect,
|
||||||
|
}:
|
||||||
|
buildPythonPackage {
|
||||||
pname = "litex";
|
pname = "litex";
|
||||||
version = "${tag}";
|
version = "${tag}";
|
||||||
|
|
||||||
|
@ -18,9 +20,7 @@ tag: {
|
||||||
hash = "sha256-OcwqYLQ7ec2vTewdIJqP/aTCJ4yI43OIOkTMD/hIKO0=";
|
hash = "sha256-OcwqYLQ7ec2vTewdIJqP/aTCJ4yI43OIOkTMD/hIKO0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [ migen ];
|
||||||
migen
|
|
||||||
];
|
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
requests
|
requests
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
tag: {
|
tag:
|
||||||
pkgs
|
{ pkgs, buildPythonPackage }:
|
||||||
, buildPythonPackage
|
buildPythonPackage rec {
|
||||||
}: buildPythonPackage rec {
|
|
||||||
pname = "pythondata-cpu-vexriscv";
|
pname = "pythondata-cpu-vexriscv";
|
||||||
version = "${tag}";
|
version = "${tag}";
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
tag: {
|
tag:
|
||||||
pkgs
|
{ pkgs, buildPythonPackage }:
|
||||||
, buildPythonPackage
|
buildPythonPackage rec {
|
||||||
}: buildPythonPackage rec {
|
|
||||||
pname = "pythondata-software-compiler_rt";
|
pname = "pythondata-software-compiler_rt";
|
||||||
version = "${tag}";
|
version = "${tag}";
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
tag: {
|
tag:
|
||||||
pkgs
|
{ pkgs, buildPythonPackage }:
|
||||||
, buildPythonPackage
|
buildPythonPackage rec {
|
||||||
}: buildPythonPackage rec {
|
|
||||||
pname = "pythondata-software-picolibc";
|
pname = "pythondata-software-picolibc";
|
||||||
version = "${tag}";
|
version = "${tag}";
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
{ lib, fetchFromGitHub, rustPlatform }:
|
{
|
||||||
|
lib,
|
||||||
|
fetchFromGitHub,
|
||||||
|
rustPlatform,
|
||||||
|
}:
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "wishbone-tool";
|
pname = "wishbone-tool";
|
||||||
|
@ -12,6 +16,5 @@ rustPlatform.buildRustPackage rec {
|
||||||
};
|
};
|
||||||
sourceRoot = "${src.name}/wishbone-tool";
|
sourceRoot = "${src.name}/wishbone-tool";
|
||||||
|
|
||||||
|
|
||||||
cargoHash = "sha256-kWvtZEXtb5bZ7/hd8jsr41UGSDOuDU4tyKWAL0kDoIg=";
|
cargoHash = "sha256-kWvtZEXtb5bZ7/hd8jsr41UGSDOuDU4tyKWAL0kDoIg=";
|
||||||
}
|
}
|
||||||
|
|
54
python.nix
54
python.nix
|
@ -1,30 +1,30 @@
|
||||||
# overlay python patched version with amaranth/boards updated.
|
# overlay python patched version with amaranth/boards updated.
|
||||||
final: prev: {
|
final: prev: {
|
||||||
python3 = prev.python3.override {
|
python3 = prev.python3.override {
|
||||||
packageOverrides = pyfinal: pyprev: {
|
packageOverrides = pyfinal: pyprev: {
|
||||||
amaranth = pyprev.amaranth.overridePythonAttrs {
|
amaranth = pyprev.amaranth.overridePythonAttrs {
|
||||||
version = "0.6.0.dev53";
|
version = "0.6.0.dev53";
|
||||||
src = prev.pkgs.fetchFromGitHub {
|
src = prev.pkgs.fetchFromGitHub {
|
||||||
owner = "amaranth-lang";
|
owner = "amaranth-lang";
|
||||||
repo = "amaranth";
|
repo = "amaranth";
|
||||||
rev = "e30d822a7d93ee615e70e95a9958051dcc794802";
|
rev = "e30d822a7d93ee615e70e95a9958051dcc794802";
|
||||||
# hash = "sha256-A46CMWGvqUFTp3geFFccUM9M7iECmNndzWm2GxA8XbE";
|
# hash = "sha256-A46CMWGvqUFTp3geFFccUM9M7iECmNndzWm2GxA8XbE";
|
||||||
hash = "sha256-sCUipI7HcuTg3sJscoSI0UdIutnxGWSwbgpwWyZuFxk=";
|
hash = "sha256-sCUipI7HcuTg3sJscoSI0UdIutnxGWSwbgpwWyZuFxk=";
|
||||||
};
|
};
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
# installCheckPhase = "${prev.python3.interpreter} -m unittest discover -t . -s tests -v";
|
# installCheckPhase = "${prev.python3.interpreter} -m unittest discover -t . -s tests -v";
|
||||||
};
|
};
|
||||||
amaranth-boards = pyprev.amaranth-boards.overridePythonAttrs {
|
amaranth-boards = pyprev.amaranth-boards.overridePythonAttrs {
|
||||||
version = "0.1.dev250";
|
version = "0.1.dev250";
|
||||||
src = prev.pkgs.fetchFromGitHub {
|
src = prev.pkgs.fetchFromGitHub {
|
||||||
owner = "amaranth-lang";
|
owner = "amaranth-lang";
|
||||||
repo = "amaranth-boards";
|
repo = "amaranth-boards";
|
||||||
rev = "19b97324ecf9111c5d16377af79f82aad761c476";
|
rev = "19b97324ecf9111c5d16377af79f82aad761c476";
|
||||||
hash = "sha256-0uvn91i/yuIY75lL5Oxvozdw7Q2Uw83JWo7srgEYEpI=";
|
hash = "sha256-0uvn91i/yuIY75lL5Oxvozdw7Q2Uw83JWo7srgEYEpI=";
|
||||||
};
|
};
|
||||||
build-system = [pyprev.pdm-backend];
|
build-system = [ pyprev.pdm-backend ];
|
||||||
dontCheckRuntimeDeps = 1;
|
dontCheckRuntimeDeps = 1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue