1{ lib, stdenv, firmwareLinuxNonfree, libarchive }:
2
3stdenv.mkDerivation {
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 lib; {
24 description = "AMD Processor microcode patch";
25 homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
26 license = licenses.unfreeRedistributableFirmware;
27 platforms = platforms.linux;
28 };
29}