From 387f3b58d2cfe131700a3c40541665c1dfde1bbb Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 21 Jun 2020 10:33:09 +0200 Subject: [PATCH] hardware.deviceTree: add name This can be used to explicitly specify a specific dtb file, relative to the dtb base. Update the generic-extlinux-compatible module to make use of this option. --- nixos/modules/hardware/device-tree.nix | 11 +++++++++++ .../loader/generic-extlinux-compatible/default.nix | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/nixos/modules/hardware/device-tree.nix b/nixos/modules/hardware/device-tree.nix index 6ae638f17cc9..b3f1dda98c89 100644 --- a/nixos/modules/hardware/device-tree.nix +++ b/nixos/modules/hardware/device-tree.nix @@ -27,6 +27,17 @@ in { ''; }; + name = mkOption { + default = null; + example = "some-dtb.dtb"; + type = types.nullOr types.str; + description = '' + The name of an explicit dtb to be loaded, relative to the dtb base. + Useful in extlinux scenarios if the bootloader doesn't pick the + right .dtb file from FDTDIR. + ''; + }; + overlays = mkOption { default = []; example = literalExample diff --git a/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix b/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix index 5ddf96f57909..416f8aeb1d38 100644 --- a/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix +++ b/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix @@ -4,6 +4,7 @@ with lib; let blCfg = config.boot.loader; + dtCfg = config.hardware.deviceTree; cfg = blCfg.generic-extlinux-compatible; timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout; @@ -53,7 +54,7 @@ in }; config = let - builderArgs = "-g ${toString cfg.configurationLimit} -t ${timeoutStr}"; + builderArgs = "-g ${toString cfg.configurationLimit} -t ${timeoutStr}" + lib.optionalString (dtCfg.name != null) " -n ${dtCfg.name}"; in mkIf cfg.enable { system.build.installBootLoader = "${builder} ${builderArgs} -c";