about summary refs log tree commit diff
path: root/pkgs/os-specific/linux/microcode/intel.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/microcode/intel.nix')
-rw-r--r--pkgs/os-specific/linux/microcode/intel.nix21
1 files changed, 10 insertions, 11 deletions
diff --git a/pkgs/os-specific/linux/microcode/intel.nix b/pkgs/os-specific/linux/microcode/intel.nix
index 857a3b580a8e..403824fb3a45 100644
--- a/pkgs/os-specific/linux/microcode/intel.nix
+++ b/pkgs/os-specific/linux/microcode/intel.nix
@@ -1,27 +1,26 @@
-{ stdenv, fetchurl, libarchive }:
+{ stdenv, fetchurl, libarchive, iucode-tool }:
 
 stdenv.mkDerivation rec {
   name = "microcode-intel-${version}";
-  version = "20180312";
+  version = "20180807";
 
   src = fetchurl {
-    url = "https://downloadmirror.intel.com/27591/eng/microcode-${version}.tgz";
-    sha256 = "0yg7q5blcqgq8jyjxhn9n48rxws77ylqzyn4kn10l6yzwan1yf0b";
+    url = "https://downloadmirror.intel.com/28039/eng/microcode-${version}.tgz";
+    sha256 = "0h4ygwx5brnrjz8v47aikrwhf0q3jhizxmzcii4bdjg64zffiy99";
   };
 
-  buildInputs = [ libarchive ];
+  nativeBuildInputs = [ iucode-tool libarchive ];
 
   sourceRoot = ".";
 
-  buildPhase = ''
-    gcc -O2 -Wall -o intel-microcode2ucode ${./intel-microcode2ucode.c}
-    ./intel-microcode2ucode microcode.dat
-  '';
-
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out kernel/x86/microcode
-    mv microcode.bin kernel/x86/microcode/GenuineIntel.bin
+    iucode_tool -w kernel/x86/microcode/GenuineIntel.bin intel-ucode/
     echo kernel/x86/microcode/GenuineIntel.bin | bsdcpio -o -H newc -R 0:0 > $out/intel-ucode.img
+
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {