mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 14:54:29 +01:00
Merge pull request #331119 from d-brasher/init-amd-ucodegen
amd-ucodegen: init at 0-unstable-2017-06-07
This commit is contained in:
commit
c0cdeaff88
2 changed files with 100 additions and 0 deletions
60
pkgs/by-name/am/amd-ucodegen/package.nix
Normal file
60
pkgs/by-name/am/amd-ucodegen/package.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
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 ];
|
||||
};
|
||||
})
|
40
pkgs/by-name/am/amd-ucodegen/test-platomav.nix
Normal file
40
pkgs/by-name/am/amd-ucodegen/test-platomav.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
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…
Reference in a new issue