From 8cb34498eceef231927c444507b6787128c5f0d8 Mon Sep 17 00:00:00 2001 From: Nathan Ringo Date: Sun, 1 Sep 2024 20:49:26 -0500 Subject: Move everything over to the new organization. --- boards/default.nix | 72 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 25 deletions(-) (limited to 'boards/default.nix') diff --git a/boards/default.nix b/boards/default.nix index dd09255..6c8c8a9 100644 --- a/boards/default.nix +++ b/boards/default.nix @@ -1,33 +1,55 @@ -{ libkernel, pkgs }: +{ + arches, + libkernel, + nixpkgs, + pkgs, + python, + system, +}: let - mkKernel = { name, asmFile, linkerScript }: - pkgs.stdenvNoCC.mkDerivation { - pname = "${libkernel.pname}-${name}"; - version = libkernel.version; - inherit asmFile linkerScript; + mkKernel = + path: + let + args = import path; + arch = arches.${args.vernos-arch}; + libkernel-arch = libkernel.${args.vernos-arch}; + pkgs-arch = import nixpkgs { + inherit system; + crossSystem.config = arch.crossSystem; + }; + in - nativeBuildInputs = [ pkgs.stdenv.cc.bintools.bintools ]; + pkgs-arch.stdenvNoCC.mkDerivation ( + { + pname = "vernos-kernel-${args.vernos-board}"; + version = libkernel-arch.version; - dontUnpack = true; - buildPhase = '' - runHook preBuild + nativeBuildInputs = [ + pkgs.ninja + pkgs-arch.stdenv.cc.bintools.bintools + python + ]; - riscv64-unknown-none-elf-as -g -march=rv64gc -mabi=lp64d -o asm.o \ - $asmFile + dontUnpack = true; + configurePhase = '' + runHook preConfigure + python3 ${./configure.py} ${args.vernos-arch} ${args.vernos-board} \ + ${libkernel-arch} $src + runHook postConfigure + ''; + installPhase = '' + runHook preInstall + install -Dt $out kernel.elf + runHook postInstall + ''; - riscv64-unknown-none-elf-ld --gc-sections -T$linkerScript -o kernel.elf \ - asm.o ${libkernel}/lib/libkernel.a + AS = "${arch.crossSystem}-as"; + LD = "${arch.crossSystem}-ld"; + } + // args + ); - runHook postBuild - ''; - installPhase = '' - runHook preInstall - install -Dt $out kernel.elf - runHook postInstall - ''; - }; +in -in pkgs.lib.recurseIntoAttrs { - qemu-virt = pkgs.callPackage ./qemu-virt { inherit mkKernel; }; -} +nixpkgs.lib.recurseIntoAttrs { qemu-virt = mkKernel ./qemu-virt; } -- cgit v1.2.3