X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=flake.nix;h=90a976cb28525ebd39463b2089e9793e24da2144;hb=fe9d3f2f05f8ac1cdb8cc0056f78ff0c94de59a9;hp=3bd7f9e9730051f81e475c5a1b13624393fa4e2b;hpb=d07407818d2f444ca3cc10e57e412109cde7f1e4;p=soc.git diff --git a/flake.nix b/flake.nix index 3bd7f9e9..90a976cb 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,3 @@ -# The license for this file is included in the `nix` directory next to this file. - { description = "FOSS CPU/GPU/VPU/SoC all in one, see https://libre-soc.org/"; @@ -14,6 +12,7 @@ inputs.migen.flake = false; inputs.yosys.url = "github:YosysHQ/yosys?rev=a58571d0fe8971cb7d3a619a31b2c21be6d75bac"; inputs.yosys.flake = false; + # submodules needed inputs.nix-litex.url = "git+https://git.sr.ht/~lschuermann/nix-litex?ref=main"; inputs.nix-litex.flake = false; @@ -37,8 +36,8 @@ in { overlay = final: prev: { - python37Packages = prev.python37Packages.override { - overrides = lib.composeExtensions (litex final).pythonOverlay (pfinal: pprev: { + python37 = prev.python37.override { + packageOverrides = lib.composeExtensions (litex final).pythonOverlay (pfinal: pprev: { libresoc-ieee754fpu = pfinal.callPackage ./nix/ieee754fpu.nix {}; libresoc-openpower-isa = pfinal.callPackage ./nix/openpower-isa.nix {}; c4m-jtag = pfinal.callPackage (import ./nix/c4m-jtag.nix { src = c4m-jtag; version = getv c4m-jtag; }) {}; @@ -68,22 +67,32 @@ src = yosys; }); - libresoc-pre-litex = final.callPackage (import ./nix/pre-litex.nix { version = getv self; }) { python3Packages = final.python37Packages; }; + libresoc-verilog = final.callPackage (import ./nix/verilog.nix { version = getv self; }) { python3Packages = final.python37Packages; }; libresoc-ls180 = final.callPackage (import ./nix/ls180.nix { version = getv self; }) { python3Packages = final.python37Packages; }; libresoc-ecp5 = final.callPackage (import ./nix/ecp5.nix { version = getv self; }) { python3Packages = final.python37Packages; }; + libresoc-ecp5-program = final.callPackage (import ./nix/ecp5-program.nix { version = getv self; }) { python3Packages = final.python37Packages; }; libresoc-pinmux = final.callPackage (import ./nix/pinmux.nix { version = getv self; }) {}; }; + apps = forAllSystems (system: { + ecp5 = { + type = "app"; + program = "${nixpkgsFor.${system}.libresoc-ecp5-program}"; + }; + }); + defaultApp = forAllSystems (system: self.apps.${system}.ecp5); + packages = forAllSystems (system: { soc = nixpkgsFor.${system}.python37Packages.libresoc-soc; - pre-litex = nixpkgsFor.${system}.libresoc-pre-litex; + verilog = nixpkgsFor.${system}.libresoc-verilog; pinmux = nixpkgsFor.${system}.libresoc-pinmux; ls180 = nixpkgsFor.${system}.libresoc-ls180; ecp5 = nixpkgsFor.${system}.libresoc-ecp5; + ecp5-program = nixpkgsFor.${system}.libresoc-ecp5-program; openpower-isa = nixpkgsFor.${system}.python37Packages.libresoc-openpower-isa; debugNixpkgs = nixpkgsFor.${system}; }); - defaultPackage = forAllSystems (system: self.packages.${system}.pre-litex); + defaultPackage = forAllSystems (system: self.packages.${system}.verilog); }; }