summary refs log tree commit diff
path: root/pkgs/os-specific/linux/microcode
diff options
context:
space:
mode:
authorWilliam A. Kennington III <william@wkennington.com>2015-03-25 14:44:19 -0700
committerWilliam A. Kennington III <william@wkennington.com>2015-03-25 14:44:19 -0700
commit27f355c1e3dcbcceea8556cced38193f0746e76f (patch)
treee4f642bfdd435125ccd63d7312709302a65c959d /pkgs/os-specific/linux/microcode
parent79827eb8f5dc8cc60880385fdb954c068b21673b (diff)
downloadnixlib-27f355c1e3dcbcceea8556cced38193f0746e76f.tar
nixlib-27f355c1e3dcbcceea8556cced38193f0746e76f.tar.gz
nixlib-27f355c1e3dcbcceea8556cced38193f0746e76f.tar.bz2
nixlib-27f355c1e3dcbcceea8556cced38193f0746e76f.tar.lz
nixlib-27f355c1e3dcbcceea8556cced38193f0746e76f.tar.xz
nixlib-27f355c1e3dcbcceea8556cced38193f0746e76f.tar.zst
nixlib-27f355c1e3dcbcceea8556cced38193f0746e76f.zip
microcode-amd: Update to early loading
Diffstat (limited to 'pkgs/os-specific/linux/microcode')
-rw-r--r--pkgs/os-specific/linux/microcode/amd.nix33
1 files changed, 19 insertions, 14 deletions
diff --git a/pkgs/os-specific/linux/microcode/amd.nix b/pkgs/os-specific/linux/microcode/amd.nix
index 0ca33fa31f04..76a340529910 100644
--- a/pkgs/os-specific/linux/microcode/amd.nix
+++ b/pkgs/os-specific/linux/microcode/amd.nix
@@ -1,25 +1,30 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, firmwareLinuxNonfree, libarchive }:
 
 stdenv.mkDerivation rec {
-  name = "amd-ucode-2012-09-10";
+  name = "amd-ucode-${firmwareLinuxNonfree.version}";
 
-  src = fetchurl {
-    urls =
-      [ "http://pkgs.fedoraproject.org/repo/pkgs/microcode_ctl/${name}.tar/559bc355d3799538584add80df2996f0/${name}.tar"
-        "http://www.amd64.org/pub/microcode/${name}.tar"
-      ];
-    sha256 = "065phvhx5hx5ssdd1x2p5m1yv26ak7l5aaw6yk6h95x9mxn5r111";
-  };
+  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/lib/firmware/amd-ucode $out/share/doc/amd-ucode
-    mv microcode_amd_fam15h.bin microcode_amd.bin $out/lib/firmware/amd-ucode/
-    mv LICENSE $out/share/doc/amd-ucode
+    mkdir -p $out
+    echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0 > $out/amd-ucode.img
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "AMD Processor microcode patch";
     homepage = http://www.amd64.org/support/microcode.html;
-    license = stdenv.lib.licenses.unfreeRedistributableFirmware;
+    license = licenses.unfreeRedistributableFirmware;
+    maintainers = with maintainers; [ wkennington ];
+    platforms = platforms.linux;
   };
 }