From 2f236ee997c9cb59e009de8f4aac7508ab7499e3 Mon Sep 17 00:00:00 2001 From: zimward Date: Tue, 21 Apr 2026 19:17:46 +0200 Subject: [PATCH] nixos/facter: enable amd-pstate for amd cpus --- nixos/modules/hardware/facter/amd-cpu.nix | 24 +++++++++++++++++++++++ nixos/modules/hardware/facter/default.nix | 1 + 2 files changed, 25 insertions(+) create mode 100644 nixos/modules/hardware/facter/amd-cpu.nix diff --git a/nixos/modules/hardware/facter/amd-cpu.nix b/nixos/modules/hardware/facter/amd-cpu.nix new file mode 100644 index 000000000000..ea779bd7d38f --- /dev/null +++ b/nixos/modules/hardware/facter/amd-cpu.nix @@ -0,0 +1,24 @@ +{ lib, config, ... }: +let + facterLib = import ./lib.nix lib; + + inherit (config.hardware.facter) report; + isBaremetal = config.hardware.facter.detected.virtualisation.none.enable; + hasAmdCpu = facterLib.hasAmdCpu report; + + kver = config.boot.kernelPackages.kernel.version; +in +lib.mkIf (config.hardware.facter.enable && isBaremetal && hasAmdCpu) { + boot = lib.mkMerge [ + (lib.mkIf ((lib.versionAtLeast kver "5.17") && (lib.versionOlder kver "6.1")) { + kernelParams = [ "initcall_blacklist=acpi_cpufreq_init" ]; + kernelModules = [ "amd-pstate" ]; + }) + (lib.mkIf ((lib.versionAtLeast kver "6.1") && (lib.versionOlder kver "6.3")) { + kernelParams = [ "amd_pstate=passive" ]; + }) + (lib.mkIf (lib.versionAtLeast kver "6.3") { + kernelParams = [ "amd_pstate=active" ]; + }) + ]; +} diff --git a/nixos/modules/hardware/facter/default.nix b/nixos/modules/hardware/facter/default.nix index a748be44d411..7174f4afe160 100644 --- a/nixos/modules/hardware/facter/default.nix +++ b/nixos/modules/hardware/facter/default.nix @@ -5,6 +5,7 @@ }: { imports = [ + ./amd-cpu.nix ./boot.nix ./bluetooth.nix ./camera