mirror of
				https://github.com/Stunkymonkey/nixos.git
				synced 2025-10-31 09:42:11 +01:00 
			
		
		
		
	
		
			
	
	
		
			39 lines
		
	
	
	
		
			799 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
	
		
			799 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
|   | { config, lib, pkgs, ... }: | ||
|  | 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; | ||
|  |       }; | ||
|  |     }) | ||
|  |   ]); | ||
|  | } |