summary refs log tree commit diff
path: root/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix')
-rw-r--r--nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix34
1 files changed, 34 insertions, 0 deletions
diff --git a/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix b/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix
new file mode 100644
index 000000000000..47f25a9c2b1b
--- /dev/null
+++ b/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix
@@ -0,0 +1,34 @@
+{ config, pkgs, configTxt }:
+
+let
+  cfg = config.boot.loader.raspberryPi;
+  isAarch64 = pkgs.stdenv.isAarch64;
+
+  uboot =
+    if cfg.version == 1 then
+      pkgs.ubootRaspberryPi
+    else if cfg.version == 2 then
+      pkgs.ubootRaspberryPi2
+    else
+      if isAarch64 then
+        pkgs.ubootRaspberryPi3_64bit
+      else
+        pkgs.ubootRaspberryPi3_32bit;
+
+  extlinuxConfBuilder =
+    import ../generic-extlinux-compatible/extlinux-conf-builder.nix {
+      inherit pkgs;
+    };
+in
+pkgs.substituteAll {
+  src = ./builder_uboot.sh;
+  isExecutable = true;
+  inherit (pkgs) bash;
+  path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
+  firmware = pkgs.raspberrypifw;
+  inherit uboot;
+  inherit configTxt;
+  inherit extlinuxConfBuilder;
+  version = cfg.version;
+}
+