refactor(systemModules): move hardware --> device/hardware, add function option
This commit is contained in:
parent
34ad7d3d61
commit
7679a227ac
17 changed files with 23 additions and 7 deletions
43
system/modules/device/hardware/cpu/amd/default.nix
Normal file
43
system/modules/device/hardware/cpu/amd/default.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkMerge mkEnableOption mkIf versionAtLeast versionOlder;
|
||||
hardware = config.systemModules.hardware.cpu;
|
||||
cfg = hardware.amd;
|
||||
kernelVersion = config.kernelPackages.kernel.version;
|
||||
kernelVersionAtLeast = versionAtLeast kernelVersion;
|
||||
kernelVersionOlder= versionOlder kernelVersion;
|
||||
in
|
||||
|
||||
{
|
||||
options.systemModules.hardware.cpu.amd = {
|
||||
pstate.enable = mkEnableOption "Enable pstate amd module";
|
||||
};
|
||||
|
||||
config = mkIf (builtins.elem hardware.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