diff options
Diffstat (limited to 'sys/boot/firmware.nix')
| -rw-r--r-- | sys/boot/firmware.nix | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/sys/boot/firmware.nix b/sys/boot/firmware.nix new file mode 100644 index 0000000..b3598a7 --- /dev/null +++ b/sys/boot/firmware.nix @@ -0,0 +1,33 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.local.boot.firmware; +in { + options.local.boot.firmware = { + mode = mkOption { + type = types.enum ["none" "redistributable" "all"]; + }; + + cpuVendor = mkOption { + type = types.enum ["amd" "intel"]; + }; + }; + + config = mkIf (cfg.mode != "none") { + hardware = { + cpu = { + amd.updateMicrocode = cfg.cpuVendor == "amd"; + intel.updateMicrocode = cfg.cpuVendor == "intel"; + }; + + enableAllFirmware = cfg.mode == "all"; + enableRedistributableFirmware = true; + }; + + services.fwupd.enable = true; + }; +} |
