summaryrefslogtreecommitdiff
path: root/nix/shells.nix
blob: 0ab1bbaa690e4e106f7d08500d865a2c682fe73b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
{ pkgs }: with pkgs; {
  default = mkShell {
    buildInputs = [
      ncurses
      openssl
      SDL2
      zlib
    ];

    nativeBuildInputs = [
      binutils
      gcc
      cross.stdenv.cc.cc
      cross.stdenv.cc.bintools
      gcc-arm-embedded
      gdb
      gnumake
      gtkwave
      kermit
      meson
      ninja
      lcov
      (openocd.overrideAttrs (prev: {
        pname = "openocd-vexriscv";
        version = "0.11.0-master";

        buildInputs = prev.buildInputs ++ [ pkgs.libyaml ];
        nativeBuildInputs = [ pkgs.autoreconfHook ] ++ prev.nativeBuildInputs;

        src = pkgs.fetchFromGitHub {
          repo = "openocd_riscv";
          owner = "SpinalHDL";

          rev = "058dfa50d625893bee9fecf8d604141911fac125";
          hash = "sha256-bv8hUlZXEexUy8tzrnibNYRNb2oLRfh1xCpmalPwdqc=";
        };
      }))
      pkg-config
      (python3.withPackages (py: with py; [
        cocotb
        cocotb-bus
        find-libpython # Para cocotb
        matplotlib
        numpy
        pillow
        pytest # Para cocotb
        (py.callPackage ./cocotb-coverage.nix { })
        (py.callPackage ./peakrdl/peakrdl.nix { })
        (py.callPackage ./peakrdl/peakrdl-regblock.nix { })
        (py.callPackage ./pyuvm.nix { })
      ]))
      rv32Pkgs.stdenv.cc.cc
      rv32Pkgs.stdenv.cc.bintools
      (quartus-prime-lite.override { supportedDevices = [ "Cyclone V" ]; })
      verilator
    ];

    shellHook = ''
      export CROSS_COMPILE=arm-unknown-linux-gnueabi-
      export MAKEFLAGS="AR=gcc-ar"

      # <https://discourse.nixos.org/t/fonts-in-nix-installed-packages-on-a-non-nixos-system/5871/7>
      export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"
      export FONTCONFIG_FILE="${fontconfig.out}/etc/fonts/fonts.conf"
    '';
  };

  kbuild = mkShell {
    buildInputs = [
      ncurses
    ];

    nativeBuildInputs = [
      bc
      bison
      flex
      gcc
      cross.stdenv.cc.cc
      cross.stdenv.cc.bintools
      gnumake
      openssl # Splash de u-boot
      ubootTools
    ];

    shellHook = ''
      export CROSS_COMPILE=arm-unknown-linux-gnueabi-
      export MAKEFLAGS="ARCH=arm O=build/taller LOADADDR=0x8000"
    '';
  };
}