aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/os-specific/linux/microcode/amd.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/os-specific/linux/microcode/amd.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/os-specific/linux/microcode/amd.nix29
1 files changed, 29 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/os-specific/linux/microcode/amd.nix b/infra/libkookie/nixpkgs/pkgs/os-specific/linux/microcode/amd.nix
new file mode 100644
index 000000000000..135187c9a108
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/os-specific/linux/microcode/amd.nix
@@ -0,0 +1,29 @@
+{ stdenv, firmwareLinuxNonfree, libarchive }:
+
+stdenv.mkDerivation {
+ name = "amd-ucode-${firmwareLinuxNonfree.version}";
+
+ src = firmwareLinuxNonfree;
+
+ sourceRoot = ".";
+
+ buildInputs = [ libarchive ];
+
+ buildPhase = ''
+ mkdir -p kernel/x86/microcode
+ find ${firmwareLinuxNonfree}/lib/firmware/amd-ucode -name \*.bin \
+ -exec sh -c 'cat {} >> kernel/x86/microcode/AuthenticAMD.bin' \;
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+ echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0 > $out/amd-ucode.img
+ '';
+
+ meta = with stdenv.lib; {
+ description = "AMD Processor microcode patch";
+ homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
+ license = licenses.unfreeRedistributableFirmware;
+ platforms = platforms.linux;
+ };
+}