summary refs log blame commit diff
path: root/pkgs/os-specific/linux/microcode/amd.nix
blob: 72f413f9cb662875a47ff29456f6d3b865848133 (plain) (tree)
1
2
3
4
5
                                                  
 
                     
                                                     
 










                                                                      

                   

                                                                                               

     
                    
                                                  
                                                                                             
                                                     
                                

    
{ lib, 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 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;
  };
}