refactor(system): flatten
This commit is contained in:
		
							parent
							
								
									ef1482a65a
								
							
						
					
					
						commit
						8298fc375a
					
				
					 42 changed files with 239 additions and 89 deletions
				
			
		
							
								
								
									
										42
									
								
								inputs/system/modules/base/host/hardware/cpu/amd.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								inputs/system/modules/base/host/hardware/cpu/amd.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,42 @@
 | 
			
		|||
{ lib, config, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  inherit (lib) mkMerge mkEnableOption mkIf versionAtLeast versionOlder;
 | 
			
		||||
  inherit (builtins) elem;
 | 
			
		||||
  cpu = config.systemModules.host.hardware.cpu; 
 | 
			
		||||
  cfg = cpu.amd;
 | 
			
		||||
  kernelVersion = config.boot.kernelPackages.kernel.version;
 | 
			
		||||
  kernelVersionAtLeast = versionAtLeast kernelVersion;
 | 
			
		||||
  kernelVersionOlder= versionOlder kernelVersion;
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  options.systemModules.host.hardware.cpu.amd.pstate.enable = mkEnableOption "Enable amd pstate module";
 | 
			
		||||
 | 
			
		||||
  config = mkIf (elem cpu.type ["amd"]) {
 | 
			
		||||
    environment.systemPackages = [pkgs.amdctl];
 | 
			
		||||
    hardware.cpu.amd.updateMicrocode = true;
 | 
			
		||||
    boot = mkMerge [
 | 
			
		||||
      {
 | 
			
		||||
        kernelModules = [
 | 
			
		||||
          "amd-pstate"
 | 
			
		||||
          "amd-kvm" # virtulization
 | 
			
		||||
          "msr" # required for amdctl
 | 
			
		||||
        ];
 | 
			
		||||
      }
 | 
			
		||||
      
 | 
			
		||||
      (mkIf (cfg.pstate.enable && (kernelVersionAtLeast "5.27") && (kernelVersionOlder "6.1")) {
 | 
			
		||||
        kernelParams = ["initcall_blacklist-acpi_cpufreq_init"];
 | 
			
		||||
        kernelModules = ["amd-pstate"];
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      (mkIf (cfg.pstate.enable && (kernelVersionAtLeast "6.1") && (kernelVersionOlder "6.3")) {
 | 
			
		||||
        kernelParams = ["amd_pstate=passive"];
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      (mkIf (cfg.pstate.enable && (kernelVersionAtLeast "6.3")) {
 | 
			
		||||
        kernelParams = ["amd_pstate=active"];
 | 
			
		||||
      })
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue