@@ -4,6 +4,7 @@ with lib;
44
55let
66 cfg = config . firmwareci . base ;
7+ amdDebugCfg = config . firmwareci . amdDebug ;
78
89 chipsecKernelVersion = "6.12.36" ;
910 kernelPackages = pkgs . linuxPackagesFor ( pkgs . linux_6_12 . override {
2324 withDriver = true ;
2425 } ;
2526
27+ amd-debug-tools = pkgs . python3Packages . callPackage ../pkgs/amd-debug-tools/default.nix { } ;
28+
2629in
2730{
2831 options . firmwareci . base = {
6871 default = true ;
6972 description = "Include the default tools package in the image." ;
7073 } ;
74+ } ;
7175
76+ options . firmwareci . amdDebug = {
77+ enable = mkOption {
78+ type = types . bool ;
79+ default = false ;
80+ description = "Enable AMD debug tools (amd-s2idle, amd-bios, amd-pstate, amd-ttm) with ethtool and edid-decode." ;
81+ } ;
7282 } ;
7383
7484 config = {
100110 powertop
101111 ]
102112 ++ lib . optional cfg . includeChipSec chipsec
103- ++ lib . optional cfg . includeDefaultTools ( pkgs . callPackage ../pkgs/default-tools/default.nix { } ) ;
113+ ++ lib . optional cfg . includeDefaultTools ( pkgs . callPackage ../pkgs/default-tools/default.nix { } )
114+ ++ lib . optionals amdDebugCfg . enable [
115+ amd-debug-tools
116+ ethtool
117+ edid-decode
118+ ] ;
104119
105120 hardware . enableAllFirmware = cfg . enableAllFirmware ;
106121
107- services . openssh = mkIf ( cfg . sshAccess . user != "" && cfg . sshAccess . key != "" ) {
108- enable = true ;
109- settings . PermitRootLogin = if cfg . sshAccess . user == "root" then "yes" else "no" ;
122+ services = {
123+ openssh = mkIf ( cfg . sshAccess . user != "" && cfg . sshAccess . key != "" ) {
124+ enable = true ;
125+ settings . PermitRootLogin = if cfg . sshAccess . user == "root" then "yes" else "no" ;
126+ } ;
127+
128+ fwupd = mkIf cfg . enableFwupd {
129+ enable = true ;
130+ daemonSettings = lib . mkForce {
131+ EspLocation = "/boot/EFI" ;
132+ } ;
133+ } ;
134+
135+ # Enable D-Bus system daemon for AMD debug tools
136+ dbus . enable = mkIf amdDebugCfg . enable true ;
110137 } ;
111138
112139 users . users . ${ cfg . sshAccess . user } = mkIf ( cfg . sshAccess . user != "" && cfg . sshAccess . key != "" ) {
113140 openssh . authorizedKeys . keys = [ cfg . sshAccess . key ] ;
114141 } ;
115-
116- services . fwupd = mkIf cfg . enableFwupd {
117- enable = true ;
118- daemonSettings = lib . mkForce {
119- EspLocation = "/boot/EFI" ;
120- } ;
121- } ;
122142 } ;
123143}
0 commit comments