1{ stdenv, fetchurl, firmwareLinuxNonfree, libarchive }:
2
3stdenv.mkDerivation rec {
4 name = "amd-ucode-${firmwareLinuxNonfree.version}";
5
6 src = firmwareLinuxNonfree;
7
8 sourceRoot = ".";
9
10 buildInputs = [ libarchive ];
11
12 buildPhase = ''
13 mkdir -p kernel/x86/microcode
14 find ${firmwareLinuxNonfree}/lib/firmware/amd-ucode -name \*.bin \
15 -exec sh -c 'cat {} >> kernel/x86/microcode/AuthenticAMD.bin' \;
16 '';
17
18 installPhase = ''
19 mkdir -p $out
20 echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0 > $out/amd-ucode.img
21 '';
22
23 meta = with stdenv.lib; {
24 description = "AMD Processor microcode patch";
25 homepage = http://www.amd64.org/support/microcode.html;
26 license = licenses.unfreeRedistributableFirmware;
27 maintainers = with maintainers; [ wkennington ];
28 platforms = platforms.linux;
29 };
30}