{ 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; }; }