Utilities

List of utils

Scripts and programs found in the coreboot ./util directory

  • abuild - coreboot autobuild script builds coreboot images for all available targets. bash

  • acpi - Walk through all ACPI tables with their addresses. bash

  • amdfwtool - Create AMD Firmware combination C

  • amdtools Various tools for AMD processors

    • update_efs_spi_speed - Change SPI speed in binary. Bash

    • Tools to compare extended K8 memory settings.

    • k8-compare-pci-space.pl - Shows differences between values in PCI space and the default value. Perl

    • k8-interpret-extended-memory-settings.pl - Shows differences between memory controller values and the default value. Perl

    • k8-read-mem-settings.sh - Makes data files understood by the k8-interpret-extended-memory-settings script. Bash

    • parse-bkdg.pl - Make bkdg.data file used by above scripts. Perl

    • example_input - Sample input for the above scripts. Text

  • apcb - AMD PSP Control Block tools

    • apcb_edit.py - This tool allows patching an existing APCB binary with specific SPDs and GPIO selection pins. Python3

    • apcb_v3_edit.py - This tool allows patching an existing APCB v3 binary with up to 16 specific SPDs. Python3

  • archive - Concatenate files and create an archive C

  • autoport - Automated porting coreboot to Sandy Bridge/Ivy Bridge/Haswell platforms Go

  • bincfg - Compiler/Decompiler for data blobs with specs Lex Yacc

  • board_status - Tools to collect logs and upload them to the board status repository Bash Go

  • bucts - A tool to manipulate the BUC.TS bit on Intel targets. C

  • cavium - Devicetree_convert Tool to convert a DTB to a static C file Python

  • cbfstool

    • cbfstool - For manipulating CBFS file C

    • fmaptool - Converts plaintext fmd files into fmap blobs C

    • rmodtool - Creates rmodules C

    • ifwitool - For manipulating IFWI C

  • cbmem - CBMEM parser to read e.g. timestamps and console log C

  • chromeos - These scripts can be used to access ChromeOS resources, for example to extract System Agent reference code and other blobs (e.g. mrc.bin, refcode, VGA option roms) from a ChromeOS recovery image. C

  • crossgcc - A cross toolchain builder for -elf toolchains (ie. no libc support) Bash

  • docker - Dockerfiles for coreboot-sdk, coreboot-jenkins-node, coreboot.org-status and docs.coreboot.org Make

  • dtd_parser - DTD structure parser Python2

  • ectool - Dumps the RAM of a laptop’s Embedded/Environmental Controller (EC). C

  • exynos - Computes and fills Exynos ROM checksum (for BL1 or BL2). Python3

  • find_usbdebug - Help find USB debug ports Bash

  • futility - Firmware utility for signing ChromeOS images Make

  • fuzz-tests - Create test cases that crash the jpeg code. C

  • genbuild_h - Generate build system definitions Shell

  • gitconfig - Initialize git repository submodules install git hooks Bash

  • hda-decoder - Dumps decoded HDA default configuration registers into a format which can be used in coreboot’s verb table Go

  • ifdtool - Extract and dump Intel Firmware Descriptor information C

  • intelmetool - Dump interesting things about Management Engine even if hidden C

  • intelp2m - convert the configuration DW0/1 registers value from an inteltool dump to coreboot macros. go

  • inteltool - Provides information about the Intel CPU/chipset hardware configuration (register contents, MSRs, etc). C

  • intelvbttool - Parse VBT from VGA BIOS C

  • kbc1126 - Tools used to dump the two blobs from the factory firmware of many HP laptops with 8051-based SMSC KBC1098/KBC1126 embedded controller and insert them to the firmware image. C

  • kconfig - Build system Make

  • lint - Source linter and linting rules Shell

  • nixos - A script and NixOS configuration files to create an ISO image for testing purposes and for working on firmware. Bash

  • mainboard - mainboard specific scripts

    • google - Directory for google mainboard specific scripts

  • marvell - Add U-Boot boot loader for Marvell ARMADA38X C

  • me_cleaner - Tool for partial deblobbing of Intel ME/TXE firmware images Python

  • mma - Memory Margin Analysis automation tests Bash

  • msrtool - Dumps chipset-specific MSR registers. C

  • mtkheader - Generate MediaTek bootload header. Python3

  • nvidia - nvidia blob parsers

  • nvramtool - Reads and writes coreboot parameters and displaying information from the coreboot table in CMOS/NVRAM. C

  • pmh7tool - Dumps, reads and writes PMH7 registers on Lenovo ThinkPads. PMH7 is used for switching on and off the power of some devices on the board such as dGPU. C

  • post - Userspace utility that can be used to test POST cards. C

  • qemu - Makefile & comprehensive default config for QEMU Q35 emulation Make

  • qualcomm - cmm

    • CMM script to debug Qualcomm coreboot environments. CMM ipqheader

    • createxbl.py - Concatenates XBL segments into one ELF image Python

    • ipqheader.py - Returns a packed MBN header image with the specified base and size Python

    • mbncat.py - Generate ipq8064 uber SBL Python

    • mbn_tools.py - Contains all MBN Utilities for image generation Python

  • release - Generate coreboot release Bash

  • riscv

    • make-spike-elf.sh - Converts a flat file into an ELF, that can be passed to SPIKE, the RISC-V reference emulator.Bash

    • sifive-gpt.py - Wraps the bootblock in a GPT partition for SiFive’s bootrom. Python3

  • rockchip - Generate Rockchip idblock bootloader. Python3

  • sconfig - coreboot device tree compiler Lex Yacc

  • scripts

    • capture_commands.sh - Write all commands from the build to a file. Shell

    • config - Manipulate options in a .config file from the command line Bash

    • cross-repo-cherrypick - Pull in patches from another tree from a gerrit repository. Shell

    • decode_spd.sh - Decodes Serial Presence Detect (SPD) files into various human readable formats. Bash

    • dts-to-fmd.sh -Converts a depthcharge fmap.dts into an fmaptool compatible .fmd format Bash

    • find_new_user_commits.sh - Finds new gerrit committers Bash

    • find-unused-kconfig-symbols.sh - Points out Kconfig variables that may be unused. There are some false positives, but it serves as a starting point Shell

    • gerrit-rebase - Applies all commits that from-branch has over to-branch, based on a common ancestor and gerrit meta-data Bash

    • get_maintainer.pl - Print selected MAINTAINERS information for the files modified in a patch or for a file Perl

    • maintainers.go - Build subsystem Maintainers Go

    • no-fsf-addresses.sh - Removes various FSF addresses from license headers Shell

    • parse-maintainers.pl - Script to alphabetize MAINTAINERS file Perl

    • rm_unused_code - Remove all code not used for a platform from the local git repository for auditing or release Bash

    • show_platforms.sh - Makes a list of platforms in the tree. Does not show variants. Shell

    • ucode_h_to_bin.sh - Microcode conversion tool Bash

    • update_submodules - Check all submodules for updates Bash

  • smmstoretool - Offline SMMSTORE variable modification tool C

  • spdtool - Dumps SPD ROMs from a given blob to separate files using known patterns and reserved bits. Useful for analysing firmware that holds SPDs on boards that have soldered down DRAM. python

  • spkmodem_recv - Decode spkmodem signals C

  • superiotool - A user-space utility to detect Super I/O of a mainboard and provide detailed information about the register contents of the Super I/O. C

  • supermicro - Tools for supermicro platforms

    • smcbiosinfo - Generates SMC biosinfo for BMC BIOS updates C

  • testing - coreboot test targets Make

  • uio_usbdebug - Debug coreboot’s usbdebug driver inside a running operating system (only Linux at this time). C

  • util_readme - Creates README.md of description files in ./util subdirectories Bash

  • vboot_list - Tools to generate a list of vboot enabled devices to the documentation Bash

  • vgabios - emulated vga driver for qemu C

  • x86 - Generates 32-bit PAE page tables based on a CSV input file. Go

  • xcompile - Cross compile setup Bash

In depth documentation

Generated documentation

*Please do not edit the markdown file in the documentation directory directly.

This file was generated by running util_readme.sh. Please make sure it is rerun when new tools are added or when documentation is updated.

To update, edit the markdown files in the util directory, then re-generate this file by running util/util_readme/util_readme.sh