summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix164
1 files changed, 86 insertions, 78 deletions
diff --git a/flake.nix b/flake.nix
index 8d1be5f..5850e79 100644
--- a/flake.nix
+++ b/flake.nix
@@ -20,104 +20,112 @@
(
system:
let
- pkgsBuild = nixpkgs.legacyPackages.${system};
- pkgsHost = import nixpkgs {
- inherit system;
- crossSystem.config = "riscv64-unknown-none-elf";
- };
+ pkgs = nixpkgs.legacyPackages.${system};
fenix = fenix-flake.packages.${system};
- toolchain = fenix.combine [
+ rust-toolchain = fenix.combine [
fenix.stable.cargo
fenix.stable.rustc
fenix.stable.clippy
- fenix.targets.riscv64gc-unknown-none-elf.stable.rust-std
+ # fenix.targets.riscv64gc-unknown-none-elf.stable.rust-std
];
- rust = pkgsHost.makeRustPlatform {
- cargo = toolchain;
- rustc = toolchain;
- };
-
- packages = rec {
- boards = import ./boards {
- inherit libkernel;
- pkgs = pkgsHost;
- };
- libkernel = pkgsBuild.callPackage ./kernel { inherit rust; };
+ rust = pkgs.makeRustPlatform {
+ cargo = rust-toolchain;
+ rustc = rust-toolchain;
};
- run-vm = pkgsBuild.writeShellApplication {
- name = "run-vm";
-
- runtimeInputs = [ pkgsBuild.qemu ];
- text = ''
- set -x
- qemu-system-riscv64 \
- -machine virt \
- -m 1G \
- -nographic \
- -bios none \
- -kernel ${packages.boards.qemu-virt}/kernel.elf \
- "$@"
- '';
- };
+ packages = { };
in
- {
- apps = {
- default = {
- type = "app";
- program = pkgsBuild.lib.getExe run-vm;
+ /*
+ pkgsHost = import nixpkgs {
+ inherit system;
+ crossSystem.config = "riscv64-unknown-none-elf";
};
- run = {
- type = "app";
- program = pkgsBuild.lib.getExe run-vm;
+ packages = rec {
+ boards = import ./boards {
+ inherit libkernel;
+ pkgs = pkgsHost;
+ };
+ libkernel = pkgsBuild.callPackage ./kernel { inherit rust; };
};
+ run-vm = pkgsBuild.writeShellApplication {
+ name = "run-vm";
+
+ runtimeInputs = [ pkgsBuild.qemu ];
- debug = {
- type = "app";
- program = pkgsBuild.lib.getExe (
- pkgsBuild.writeShellApplication {
- name = "run-vm-debug";
- runtimeInputs = [ run-vm ];
- text = ''
- port=$(( 1000 * ("$(id -u)" - 990) ))
- run-vm -gdb tcp::$port -S "$@"
- '';
- }
- );
+ text = ''
+ set -x
+ qemu-system-riscv64 \
+ -machine virt \
+ -m 1G \
+ -nographic \
+ -bios none \
+ -kernel ${packages.boards.qemu-virt}/kernel.elf \
+ "$@"
+ '';
};
+ */
+ {
+ /*
+ apps = {
+ default = {
+ type = "app";
+ program = pkgsBuild.lib.getExe run-vm;
+ };
- gdb = {
- type = "app";
- program = pkgsBuild.lib.getExe (
- pkgsBuild.writeShellApplication {
- name = "gdb";
- runtimeInputs = [ toolchain ];
- text = ''
- port=$(( 1000 * ("$(id -u)" - 990) ))
- rust-gdb ${packages.boards.qemu-virt}/kernel.elf \
- -ex "target remote 127.0.0.1:$port" \
- -ex "set riscv use-compressed-breakpoints yes" \
- -ex "layout asm" \
- -ex "layout regs" \
- -ex "focus cmd" \
- -ex "tbreak hart0_boot" \
- -ex "c"
- '';
- }
- );
+ run = {
+ type = "app";
+ program = pkgsBuild.lib.getExe run-vm;
+ };
+
+ debug = {
+ type = "app";
+ program = pkgsBuild.lib.getExe (
+ pkgsBuild.writeShellApplication {
+ name = "run-vm-debug";
+ runtimeInputs = [ run-vm ];
+ text = ''
+ port=$(( 1000 * ("$(id -u)" - 990) ))
+ run-vm -gdb tcp::$port -S "$@"
+ '';
+ }
+ );
+ };
+
+ gdb = {
+ type = "app";
+ program = pkgsBuild.lib.getExe (
+ pkgsBuild.writeShellApplication {
+ name = "gdb";
+ runtimeInputs = [ toolchain ];
+ text = ''
+ port=$(( 1000 * ("$(id -u)" - 990) ))
+ rust-gdb ${packages.boards.qemu-virt}/kernel.elf \
+ -ex "target remote 127.0.0.1:$port" \
+ -ex "set riscv use-compressed-breakpoints yes" \
+ -ex "layout asm" \
+ -ex "layout regs" \
+ -ex "focus cmd" \
+ -ex "tbreak hart0_boot" \
+ -ex "c"
+ '';
+ }
+ );
+ };
};
- };
+ */
- devShells.default = pkgsBuild.mkShell {
+ devShells.default = pkgs.mkShell {
inputsFrom = builtins.attrValues (flake-utils.lib.flattenTree packages);
nativeBuildInputs = [
- pkgsBuild.cargo-watch
- pkgsBuild.qemu
- pkgsHost.stdenv.cc.bintools.bintools
+ (pkgs.callPackage ./nix/miri.nix { inherit fenix; })
+ pkgs.cargo-watch
+ pkgs.qemu
+ rust-toolchain
+ # pkgsHost.stdenv.cc.bintools.bintools
];
- CARGO_BUILD_TARGET = "riscv64gc-unknown-none-elf";
+ # CARGO_BUILD_TARGET = "riscv64gc-unknown-none-elf";
};
packages = flake-utils.lib.flattenTree packages;