From d99ca4e5f4d5dbbe3c8107e2fd2c778edeb37851 Mon Sep 17 00:00:00 2001 From: 0x4A6F <0x4A6F@users.noreply.github.com> Date: Sun, 27 Jul 2025 20:31:22 +0200 Subject: [PATCH 1/7] framework-amd-ai-300-series: bump kernel to latest for suspend support --- framework/13-inch/amd-ai-300-series/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/framework/13-inch/amd-ai-300-series/default.nix b/framework/13-inch/amd-ai-300-series/default.nix index 5eecb38b..78af36cd 100644 --- a/framework/13-inch/amd-ai-300-series/default.nix +++ b/framework/13-inch/amd-ai-300-series/default.nix @@ -10,6 +10,11 @@ ../common ../common/amd.nix ]; - config.hardware.framework.laptop13.audioEnhancement.rawDeviceName = - lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo"; + config = { + hardware.framework.laptop13.audioEnhancement.rawDeviceName = + lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo"; + + # suspend works with 6.15 + boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.15") pkgs.linuxPackages_latest; + }; } From 547c96d797da1c0cd1ca737d66f2d18c7de91618 Mon Sep 17 00:00:00 2001 From: 0x4A6F <0x4A6F@users.noreply.github.com> Date: Mon, 4 Aug 2025 12:19:53 +0200 Subject: [PATCH 2/7] framework-amd-ai-300-series: mkDefault boot.kernelPackages --- framework/13-inch/amd-ai-300-series/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/framework/13-inch/amd-ai-300-series/default.nix b/framework/13-inch/amd-ai-300-series/default.nix index 78af36cd..0b59e780 100644 --- a/framework/13-inch/amd-ai-300-series/default.nix +++ b/framework/13-inch/amd-ai-300-series/default.nix @@ -15,6 +15,8 @@ lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo"; # suspend works with 6.15 - boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.15") pkgs.linuxPackages_latest; + boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.15") ( + lib.mkDefault pkgs.linuxPackages_latest + ); }; } From 915755282509cdb7d707eb1b3c4e4ef5919bf4ef Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Mon, 19 May 2025 22:51:57 +0800 Subject: [PATCH 3/7] framework: Add Framework Desktop Signed-off-by: Daniel Schaefer --- flake.nix | 1 + .../desktop/amd-ai-max-300-series/README.md | 17 +++++++++++++++++ .../desktop/amd-ai-max-300-series/default.nix | 10 ++++++++++ 3 files changed, 28 insertions(+) create mode 100644 framework/desktop/amd-ai-max-300-series/README.md create mode 100644 framework/desktop/amd-ai-max-300-series/default.nix diff --git a/flake.nix b/flake.nix index 14cd6884..3cd9e355 100644 --- a/flake.nix +++ b/flake.nix @@ -133,6 +133,7 @@ framework-13-7040-amd = import ./framework/13-inch/7040-amd; framework-amd-ai-300-series = import ./framework/13-inch/amd-ai-300-series; framework-16-7040-amd = import ./framework/16-inch/7040-amd; + framework-desktop-amd-ai-max-300-series = import ./framework/desktop/amd-ai-max-300-series; friendlyarm-nanopc-t4 = import ./friendlyarm/nanopc-t4; friendlyarm-nanopi-r5s = import ./friendlyarm/nanopi-r5s; focus-m2-gen1 = import ./focus/m2/gen1; diff --git a/framework/desktop/amd-ai-max-300-series/README.md b/framework/desktop/amd-ai-max-300-series/README.md new file mode 100644 index 00000000..6cc79bcd --- /dev/null +++ b/framework/desktop/amd-ai-max-300-series/README.md @@ -0,0 +1,17 @@ +# [Framework Desktop](https://frame.work/desktop) + +## Updating Firmware + +First put enable `fwupd` + +```nix +services.fwupd.enable = true; +``` + +Then run + +```sh + $ fwupdmgr update +``` + +- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Desktop.RyzenAIMax300.BIOS.firmware) diff --git a/framework/desktop/amd-ai-max-300-series/default.nix b/framework/desktop/amd-ai-max-300-series/default.nix new file mode 100644 index 00000000..b0205923 --- /dev/null +++ b/framework/desktop/amd-ai-max-300-series/default.nix @@ -0,0 +1,10 @@ +{ config, lib, ... }: +{ + imports = [ + ../../../common/cpu/amd + ../../../common/cpu/amd/pstate.nix + ../../../common/gpu/amd + ../../../common/pc/ssd + ../../framework-tool.nix + ]; +} From 659b41d59cf586362a99adbfc9e0fb9de1acac3b Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Thu, 24 Jul 2025 18:18:06 +0800 Subject: [PATCH 4/7] framework/desktop: Add minimum kernel version Signed-off-by: Daniel Schaefer --- framework/desktop/amd-ai-max-300-series/README.md | 6 ++++++ framework/desktop/amd-ai-max-300-series/default.nix | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/framework/desktop/amd-ai-max-300-series/README.md b/framework/desktop/amd-ai-max-300-series/README.md index 6cc79bcd..e9c274e7 100644 --- a/framework/desktop/amd-ai-max-300-series/README.md +++ b/framework/desktop/amd-ai-max-300-series/README.md @@ -1,5 +1,11 @@ # [Framework Desktop](https://frame.work/desktop) +## Kernel version + +The recommended version is 6.15 or newer, it has good GPU and also EC firmware support (for sensors and ARGB). +The lowest recommended version is 6.14. It has good GPU support already. +The absolute lowest that runs okay on headless systems is 6.11, but the GPU is not fully supported yet. + ## Updating Firmware First put enable `fwupd` diff --git a/framework/desktop/amd-ai-max-300-series/default.nix b/framework/desktop/amd-ai-max-300-series/default.nix index b0205923..60fc6216 100644 --- a/framework/desktop/amd-ai-max-300-series/default.nix +++ b/framework/desktop/amd-ai-max-300-series/default.nix @@ -1,4 +1,9 @@ -{ config, lib, ... }: +{ + config, + lib, + pkgs, + ... +}: { imports = [ ../../../common/cpu/amd @@ -7,4 +12,9 @@ ../../../common/pc/ssd ../../framework-tool.nix ]; + + # 6.14 and above have good GPU support + boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.14") ( + lib.mkDefault pkgs.linuxPackages_latest + ); } From df02f4f16a46d258967705383f408ce4a684f3e7 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Thu, 24 Jul 2025 12:58:11 +0800 Subject: [PATCH 5/7] framework/12-inch: Fix tabletmode on some kernels NixOS kernels don't have pinctrl_tigerlake built-in, we need to make sure it loads before soc_button_array. Adding it to the initrd ensures that. Signed-off-by: Daniel Schaefer --- framework/12-inch/13th-gen-intel/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/framework/12-inch/13th-gen-intel/default.nix b/framework/12-inch/13th-gen-intel/default.nix index 6431338a..7a3e1de4 100644 --- a/framework/12-inch/13th-gen-intel/default.nix +++ b/framework/12-inch/13th-gen-intel/default.nix @@ -4,4 +4,10 @@ ../common ../../../common/cpu/intel ]; + + # If this module isn't built into the kernel, we need to make sure it loads + # before soc_button_array. Otherwise the tablet mode gpio doesn't work. + # If correctly loaded, dmesg should show + # input: gpio-keys as /devices/platform/INT33D3:00 + boot.initrd.kernelModules = [ "pinctrl_tigerlake" ]; } From 7dd36b62fc1316dc33d63d4ada114f52b5300d8d Mon Sep 17 00:00:00 2001 From: Matt Schwennesen Date: Fri, 15 Aug 2025 18:22:42 -0500 Subject: [PATCH 6/7] fix typo casuing error --- microsoft/surface/common/kernel/6.12/patches.nix | 6 ++---- microsoft/surface/common/kernel/6.15/patches.nix | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/microsoft/surface/common/kernel/6.12/patches.nix b/microsoft/surface/common/kernel/6.12/patches.nix index d5cc8ccc..a2ce7d1a 100644 --- a/microsoft/surface/common/kernel/6.12/patches.nix +++ b/microsoft/surface/common/kernel/6.12/patches.nix @@ -3,13 +3,11 @@ kernel ? lib.kernel, patchSrc, version, -}: - -[ +}: [ { name = "microsoft-surface-patches-linux-${version}"; patch = null; - extraStructuredConfig = with kernel; { + structuredExtraConfig = with kernel; { STAGING_MEDIA = yes; ## diff --git a/microsoft/surface/common/kernel/6.15/patches.nix b/microsoft/surface/common/kernel/6.15/patches.nix index 6f685ee4..bcd253c1 100644 --- a/microsoft/surface/common/kernel/6.15/patches.nix +++ b/microsoft/surface/common/kernel/6.15/patches.nix @@ -3,13 +3,11 @@ kernel ? lib.kernel, patchSrc, version, -}: - -[ +}: [ { name = "microsoft-surface-patches-linux-${version}"; patch = null; - extraStructuredConfig = with kernel; { + structuredExtraConfig = with kernel; { STAGING_MEDIA = yes; ## ## Surface Aggregator Module From c006c5a59b9f844ca5e835e0bb1aed85a9bf4284 Mon Sep 17 00:00:00 2001 From: Matt Schwennesen Date: Fri, 15 Aug 2025 23:00:53 -0500 Subject: [PATCH 7/7] formatting --- microsoft/surface/common/kernel/6.12/patches.nix | 4 +++- microsoft/surface/common/kernel/6.15/patches.nix | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/microsoft/surface/common/kernel/6.12/patches.nix b/microsoft/surface/common/kernel/6.12/patches.nix index a2ce7d1a..fd48cb7e 100644 --- a/microsoft/surface/common/kernel/6.12/patches.nix +++ b/microsoft/surface/common/kernel/6.12/patches.nix @@ -3,7 +3,9 @@ kernel ? lib.kernel, patchSrc, version, -}: [ +}: + +[ { name = "microsoft-surface-patches-linux-${version}"; patch = null; diff --git a/microsoft/surface/common/kernel/6.15/patches.nix b/microsoft/surface/common/kernel/6.15/patches.nix index bcd253c1..e4245046 100644 --- a/microsoft/surface/common/kernel/6.15/patches.nix +++ b/microsoft/surface/common/kernel/6.15/patches.nix @@ -3,7 +3,9 @@ kernel ? lib.kernel, patchSrc, version, -}: [ +}: + +[ { name = "microsoft-surface-patches-linux-${version}"; patch = null;