summary refs log tree commit diff
path: root/pkgs/os-specific/linux/device-tree
diff options
context:
space:
mode:
authorKai Wohlfahrt <kai.wohlfahrt@gmail.com>2019-05-08 23:25:22 +0100
committerKai Wohlfahrt <kai@prodo.ai>2019-08-07 13:51:22 +0100
commit28cf80acf8ef2d1d3f1a3f12bd7a959450b8ec58 (patch)
tree50adbd1bf7885d97815b816b858388248f28e740 /pkgs/os-specific/linux/device-tree
parentdd0a9512797faa83bd1f974b10ef4d620200a79a (diff)
downloadnixpkgs-28cf80acf8ef2d1d3f1a3f12bd7a959450b8ec58.tar
nixpkgs-28cf80acf8ef2d1d3f1a3f12bd7a959450b8ec58.tar.gz
nixpkgs-28cf80acf8ef2d1d3f1a3f12bd7a959450b8ec58.tar.bz2
nixpkgs-28cf80acf8ef2d1d3f1a3f12bd7a959450b8ec58.tar.lz
nixpkgs-28cf80acf8ef2d1d3f1a3f12bd7a959450b8ec58.tar.xz
nixpkgs-28cf80acf8ef2d1d3f1a3f12bd7a959450b8ec58.tar.zst
nixpkgs-28cf80acf8ef2d1d3f1a3f12bd7a959450b8ec58.zip
nixos/hardware.deviceTree: Move things around
In response to comments, create a sub-folder for deviceTree packages
(starting with rpi), and a top-level package for helpers.
Diffstat (limited to 'pkgs/os-specific/linux/device-tree')
-rw-r--r--pkgs/os-specific/linux/device-tree/default.nix17
-rw-r--r--pkgs/os-specific/linux/device-tree/raspberrypi.nix14
2 files changed, 31 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/device-tree/default.nix b/pkgs/os-specific/linux/device-tree/default.nix
new file mode 100644
index 00000000000..13d819a08a5
--- /dev/null
+++ b/pkgs/os-specific/linux/device-tree/default.nix
@@ -0,0 +1,17 @@
+{ stdenvNoCC, dtc, findutils }:
+
+with stdenvNoCC.lib; {
+  applyOverlays = (base: overlays: stdenvNoCC.mkDerivation {
+    name = "device-tree-overlays";
+    nativeBuildInputs = [ dtc findutils ];
+    buildCommand = let
+      quotedDtbos = concatMapStringsSep " " (o: "\"${toString o}\"") (toList overlays);
+    in ''
+      for dtb in $(find ${base} -name "*.dtb" ); do
+        outDtb=$out/$(realpath --relative-to "${base}" "$dtb")
+        mkdir -p "$(dirname "$outDtb")"
+        fdtoverlay -o "$outDtb" -i "$dtb" ${quotedDtbos};
+      done
+    '';
+  });
+}
diff --git a/pkgs/os-specific/linux/device-tree/raspberrypi.nix b/pkgs/os-specific/linux/device-tree/raspberrypi.nix
new file mode 100644
index 00000000000..aa6edefd74d
--- /dev/null
+++ b/pkgs/os-specific/linux/device-tree/raspberrypi.nix
@@ -0,0 +1,14 @@
+{ stdenvNoCC, raspberrypifw }:
+
+stdenvNoCC.mkDerivation {
+  name = "raspberrypi-dtbs-${raspberrypifw.version}";
+  nativeBuildInputs = [ raspberrypifw ];
+  buildCommand = ''
+    mkdir -p $out/broadcom/
+    cp ${raspberrypifw}/share/raspberrypi/boot/bcm*.dtb $out/broadcom
+  '';
+  passthru = {
+    # Compatible overlays that may be used
+    overlays = "${raspberrypifw}/share/raspberrypi/boot/overlays";
+  };
+}