nixos/modules/hardware/firmware/default.nix
2024-07-28 21:08:02 +02:00

45 lines
881 B
Nix

{ config, lib, ... }:
let
cfg = config.my.hardware.firmware;
in
{
options.my.hardware.firmware = with lib; {
enable = mkEnableOption "firmware configuration";
cpuFlavor = mkOption {
type =
with types;
nullOr (enum [
"intel"
"amd"
]);
default = null;
example = "intel";
description = "Which kind of CPU to activate micro-code updates";
};
};
config = lib.mkIf cfg.enable (
lib.mkMerge [
{
hardware = {
enableRedistributableFirmware = true;
};
}
# Intel CPU
(lib.mkIf (cfg.cpuFlavor == "intel") {
hardware = {
cpu.intel.updateMicrocode = true;
};
})
# AMD CPU
(lib.mkIf (cfg.cpuFlavor == "amd") {
hardware = {
cpu.amd.updateMicrocode = true;
};
})
]
);
}