diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix b/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix new file mode 100644 index 000000000000..3f6988f1f657 --- /dev/null +++ b/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix @@ -0,0 +1,104 @@ +{ stdenv, fetchurl, zlib, pciutils, coreutils, acpica-tools, iasl, makeWrapper, gnugrep, gnused, file, buildEnv }: + +let + version = "4.10"; + + meta = with stdenv.lib; { + description = "Various coreboot-related tools"; + homepage = "https://www.coreboot.org"; + license = licenses.gpl2; + maintainers = [ maintainers.petabyteboy ]; + platforms = platforms.linux; + }; + + generic = { pname, path ? "util/${pname}", ... }@args: stdenv.mkDerivation (rec { + inherit pname version meta; + + src = fetchurl { + url = "https://coreboot.org/releases/coreboot-${version}.tar.xz"; + sha256 = "1jsiz17afi2lqg1jv6lsl8s05w7vr7iwgg86y2qp369hcz6kcwfa"; + }; + + enableParallelBuilding = true; + + postPatch = '' + cd ${path} + ''; + + makeFlags = [ + "INSTALL=install" + "PREFIX=${placeholder "out"}" + ]; + } // args); + + utils = { + msrtool = generic { + pname = "msrtool"; + meta.description = "Dump chipset-specific MSR registers"; + buildInputs = [ pciutils zlib ]; + preConfigure = "export INSTALL=install"; + }; + cbmem = generic { + pname = "cbmem"; + meta.description = "Coreboot console log reader"; + }; + ifdtool = generic { + pname = "ifdtool"; + meta.description = "Extract and dump Intel Firmware Descriptor information"; + }; + intelmetool = generic { + pname = "intelmetool"; + meta.description = "Dump interesting things about Management Engine"; + buildInputs = [ pciutils zlib ]; + }; + cbfstool = generic { + pname = "cbfstool"; + meta.description = "Management utility for CBFS formatted ROM images"; + }; + nvramtool = generic { + pname = "nvramtool"; + meta.description = "Read and write coreboot parameters and display information from the coreboot table in CMOS/NVRAM"; + }; + superiotool = generic { + pname = "superiotool"; + meta.description = "User-space utility to detect Super I/O of a mainboard and provide detailed information about the register contents of the Super I/O"; + buildInputs = [ pciutils zlib ]; + }; + ectool = generic { + pname = "ectool"; + meta.description = "Dump the RAM of a laptop's Embedded/Environmental Controller (EC)"; + meta.platforms = [ "x86_64-linux" "i686-linux" ]; + preInstall = "mkdir -p $out/sbin"; + }; + inteltool = generic { + pname = "inteltool"; + meta.description = "Provides information about Intel CPU/chipset hardware configuration (register contents, MSRs, etc)"; + buildInputs = [ pciutils zlib ]; + }; + amdfwtool = generic { + pname = "amdfwtool"; + meta.description = "Create AMD firmware combination"; + installPhase = "install -Dm755 amdfwtool $out/bin/amdfwtool"; + }; + acpidump-all = generic { + pname = "acpidump-all"; + path = "util/acpi"; + meta.description = "Walk through all ACPI tables with their addresses"; + nativeBuildInputs = [ makeWrapper ]; + dontBuild = true; + installPhase = "install -Dm755 acpidump-all $out/bin/acpidump-all"; + postFixup = let + binPath = [ coreutils acpica-tools iasl gnugrep gnused file ]; + in "wrapProgram $out/bin/acpidump-all --set PATH ${stdenv.lib.makeBinPath binPath}"; + }; + }; + +in utils // { + coreboot-utils = (buildEnv { + name = "coreboot-utils-${version}"; + paths = stdenv.lib.attrValues utils; + postBuild = "rm -rf $out/sbin"; + }) // { + inherit meta version; + }; +} |