Loading pkgs/by-name/am/amd-ucodegen/package.nix 0 → 100644 +60 −0 Original line number Diff line number Diff line { lib, stdenv, fetchFromGitHub, fetchpatch, nix-update-script, callPackage, }: stdenv.mkDerivation (finalAttrs: { pname = "amd-ucodegen"; version = "0-unstable-2017-06-07"; src = fetchFromGitHub { owner = "AndyLavr"; repo = "amd-ucodegen"; rev = "0d34b54e396ef300d0364817e763d2c7d1ffff02"; hash = "sha256-pgmxzd8tLqdQ8Kmmhl05C5tMlCByosSrwx2QpBu3UB0="; }; strictDeps = true; patches = [ # Extract get_family function and validate processor family # instead of processor ID (fetchpatch { name = "validate-family-not-id.patch"; url = "https://github.com/AndyLavr/amd-ucodegen/compare/0d34b54e396ef300d0364817e763d2c7d1ffff02...dobo90:amd-ucodegen:7a3c51e821df96910ecb05b22f3e4866b4fb85b2.patch"; hash = "sha256-jvsvu9QgXikwsxjPiTaRff+cOg/YQmKg1MYKyBoMRQI="; }) ]; installPhase = '' runHook preInstall install -Dm755 amd-ucodegen $out/bin/amd-ucodegen runHook postInstall ''; passthru = { updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; tests.platomav = callPackage ./test-platomav.nix { amd-ucodegen = finalAttrs.finalPackage; }; }; meta = { description = "Tool to generate AMD microcode files"; longDescription = '' This tool can be used to generate AMD microcode containers as used by the Linux kernel. It accepts raw AMD microcode files such as those generated by [MCExtractor](https://github.com/platomav/MCExtractor.git) as input. The generated output file can be installed in /lib/firmware/amd-ucode. ''; homepage = "https://github.com/AndyLavr/amd-ucodegen"; license = lib.licenses.gpl2Only; platforms = lib.platforms.unix; mainProgram = "amd-ucodegen"; maintainers = with lib.maintainers; [ d-brasher ]; }; }) pkgs/by-name/am/amd-ucodegen/test-platomav.nix 0 → 100644 +40 −0 Original line number Diff line number Diff line { stdenvNoCC, fetchFromGitHub, amd-ucodegen, }: stdenvNoCC.mkDerivation { name = "amd-ucodegen-test-platomav"; meta.timeout = 60; # Repository of dumped CPU microcodes src = fetchFromGitHub { owner = "platomav"; repo = "CPUMicrocodes"; rev = "dfc37d654cbe294acb0ec0274763321507dd7838"; hash = "sha256-Va+ErKID5iyKEee61tlrZwSpujxwMYPC+MAgZKUkrrM="; }; nativeBuildInputs = [ amd-ucodegen ]; buildPhase = '' runHook preBuild echo -n "Test normal behavior with single input... " [ "$(amd-ucodegen AMD/cpu00B40F40_ver0B40401A_2024-06-14_544DFCB8.bin)" \ == "CPU type 0xb40f40 [0xb440], file AMD/cpu00B40F40_ver0B40401A_2024-06-14_544DFCB8.bin" ] echo "OK" echo -n "Check output hash... " [ "$(sha256sum microcode_amd_fam1ah.bin)" \ == "17f25ec78fa677803684e77ce01a21344b4b33463a964f61bae51b173543b190 microcode_amd_fam1ah.bin" ] echo "OK" echo -n "Ensure fail when bad processor ID... " [ "$(amd-ucodegen AMD/cpu00000F00_ver02000008_2007-06-14_C3A923BB.bin 2>&1)" \ == "Bad processor ID 0x0n" ] echo "OK" touch $out runHook postBuild ''; } Loading
pkgs/by-name/am/amd-ucodegen/package.nix 0 → 100644 +60 −0 Original line number Diff line number Diff line { lib, stdenv, fetchFromGitHub, fetchpatch, nix-update-script, callPackage, }: stdenv.mkDerivation (finalAttrs: { pname = "amd-ucodegen"; version = "0-unstable-2017-06-07"; src = fetchFromGitHub { owner = "AndyLavr"; repo = "amd-ucodegen"; rev = "0d34b54e396ef300d0364817e763d2c7d1ffff02"; hash = "sha256-pgmxzd8tLqdQ8Kmmhl05C5tMlCByosSrwx2QpBu3UB0="; }; strictDeps = true; patches = [ # Extract get_family function and validate processor family # instead of processor ID (fetchpatch { name = "validate-family-not-id.patch"; url = "https://github.com/AndyLavr/amd-ucodegen/compare/0d34b54e396ef300d0364817e763d2c7d1ffff02...dobo90:amd-ucodegen:7a3c51e821df96910ecb05b22f3e4866b4fb85b2.patch"; hash = "sha256-jvsvu9QgXikwsxjPiTaRff+cOg/YQmKg1MYKyBoMRQI="; }) ]; installPhase = '' runHook preInstall install -Dm755 amd-ucodegen $out/bin/amd-ucodegen runHook postInstall ''; passthru = { updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; tests.platomav = callPackage ./test-platomav.nix { amd-ucodegen = finalAttrs.finalPackage; }; }; meta = { description = "Tool to generate AMD microcode files"; longDescription = '' This tool can be used to generate AMD microcode containers as used by the Linux kernel. It accepts raw AMD microcode files such as those generated by [MCExtractor](https://github.com/platomav/MCExtractor.git) as input. The generated output file can be installed in /lib/firmware/amd-ucode. ''; homepage = "https://github.com/AndyLavr/amd-ucodegen"; license = lib.licenses.gpl2Only; platforms = lib.platforms.unix; mainProgram = "amd-ucodegen"; maintainers = with lib.maintainers; [ d-brasher ]; }; })
pkgs/by-name/am/amd-ucodegen/test-platomav.nix 0 → 100644 +40 −0 Original line number Diff line number Diff line { stdenvNoCC, fetchFromGitHub, amd-ucodegen, }: stdenvNoCC.mkDerivation { name = "amd-ucodegen-test-platomav"; meta.timeout = 60; # Repository of dumped CPU microcodes src = fetchFromGitHub { owner = "platomav"; repo = "CPUMicrocodes"; rev = "dfc37d654cbe294acb0ec0274763321507dd7838"; hash = "sha256-Va+ErKID5iyKEee61tlrZwSpujxwMYPC+MAgZKUkrrM="; }; nativeBuildInputs = [ amd-ucodegen ]; buildPhase = '' runHook preBuild echo -n "Test normal behavior with single input... " [ "$(amd-ucodegen AMD/cpu00B40F40_ver0B40401A_2024-06-14_544DFCB8.bin)" \ == "CPU type 0xb40f40 [0xb440], file AMD/cpu00B40F40_ver0B40401A_2024-06-14_544DFCB8.bin" ] echo "OK" echo -n "Check output hash... " [ "$(sha256sum microcode_amd_fam1ah.bin)" \ == "17f25ec78fa677803684e77ce01a21344b4b33463a964f61bae51b173543b190 microcode_amd_fam1ah.bin" ] echo "OK" echo -n "Ensure fail when bad processor ID... " [ "$(amd-ucodegen AMD/cpu00000F00_ver02000008_2007-06-14_C3A923BB.bin 2>&1)" \ == "Bad processor ID 0x0n" ] echo "OK" touch $out runHook postBuild ''; }