coreboot-kgpe-d16/util
Marshall Dawson 30cf155168 util/cbfstool: Add AMD BIOS compression tool for PSP
Add a utility to generate a compressed BIOS image for AMD Family 17h.

If the input is an elf file, the utility extracts the program portion
for compression.  Otherwise the file is compressed as-is.

In modern AMD systems, the PSP brings up DRAM then uncompresses the
BIOS image into memory prior to x86 beginning execution.  The PSP
supports a zlib engine, and interprets the first 256 bytes as a
header, where offset 0x14 containing the uncompressed size.  For
further details, see AMD Platform Security Processor BIOS Architecture
Design Guide for AMD Family 17h Processors (NDA only, #55758).

BUG=b:127766506
TEST=Use with WIP Picasso

Change-Id: Id1c54e0a6dae9e4a0362c6635fe8b8aa48a369d8
Signed-off-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/33401
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
2019-07-03 21:28:43 +00:00
..
abuild util/abuild: Set fatal asserts when running scanbuild 2019-02-27 19:33:43 +00:00
acpi
amdfwtool util/amdfwtool: Update for Family 17h 2019-06-19 19:14:39 +00:00
amdtools
archive
arm_boot_tools/mksunxiboot util/arm_boot_tools/mksunxiboot: Correct format strings 2019-04-03 16:57:19 +00:00
autoport sb/intel/bd82x6x: Set up io_gen_dec in romstage based on devicetree 2019-06-21 09:00:57 +00:00
bimgtool
bincfg Revert "util/bincfg: code cleanup: convert sym_table to a local variable" 2019-01-26 13:35:43 +00:00
board_status util/board_status.sh: Fix command for fetching the kernel log 2018-12-18 13:22:11 +00:00
bucts util/bucts: Add a description.md file 2018-12-18 13:24:56 +00:00
cavium util: Fix shebang for python2 scripts 2018-11-18 09:12:22 +00:00
cbfstool util/cbfstool: Add AMD BIOS compression tool for PSP 2019-07-03 21:28:43 +00:00
cbmem util/cbmem: Enable -Wmissing-prototypes 2019-07-02 16:12:21 +00:00
chromeos util/chromeos/crosfirmware.sh: Print more messages 2019-01-03 16:53:57 +00:00
crossgcc crossgcc: Upgrade acpica to version 20190509 2019-05-13 09:32:24 +00:00
docker util/docker/coreboot.org-status: Add more "nice" names for CPUs 2019-07-02 16:08:18 +00:00
dtd_parser
ectool {src,util}: Remove duplicated includes 2019-05-07 16:15:56 +00:00
exynos
find_usbdebug utils: introduce find_usbdebug.sh to help find USB debug ports 2018-12-19 10:21:32 +00:00
futility util: Add description.md to each util 2018-07-26 13:26:50 +00:00
fuzz-tests
genbuild_h util/genbuild_h: Prefer iasl from .xcompile over a hard code 2019-04-15 16:35:09 +00:00
genprof
gitconfig util/gitconfig/pre-commit: Use clang-format to sanitise commits 2019-01-04 10:37:10 +00:00
ifdtool util/ifdtool: Enable -Wmissing-prototypes 2019-07-01 14:30:53 +00:00
intelmetool util/intelmetool: Add Intel Cannon Lake PCH HECI Controller to supported PCI devices 2019-04-23 09:55:31 +00:00
inteltool util/inteltool: Add Kabylake E3-1200 Support 2019-05-15 17:21:39 +00:00
intelvbttool util/intelvbttool: Add error checking for memory allocation 2019-05-13 09:12:35 +00:00
ipqheader sdm845: Combine BB with QC-Sec for ROM boot 2019-05-03 21:59:05 +00:00
k8resdump
kbc1126
kconfig util/kconfig: Use snprintf to avoid buffer overflow 2019-05-13 09:14:42 +00:00
lint lint/clang-format: set to 96 chars per line 2019-06-13 20:14:00 +00:00
marvell
me_cleaner
mma
msrtool
mtkheader util: Add description.md to each util 2018-07-26 13:26:50 +00:00
nvidia
nvramtool
pmh7tool
post
qualcomm qcs405: util/qualcomm: Add T32 debug scripts 2019-06-03 13:20:38 +00:00
release util/release: add more categories 2019-07-02 16:08:05 +00:00
riscv
rockchip
romcc util/romcc: Add extra null pointer check 2019-05-23 09:02:18 +00:00
sconfig util/sconfig: Move 'static' at beginning of declaration 2019-05-22 10:09:33 +00:00
scripts util/scripts: update references to cross-repo-cherrypick 2019-05-20 14:44:08 +00:00
showdevicetree
spdtool util/spdtool: Add tool to extract SPD from BLOBs 2019-04-01 08:03:29 +00:00
spkmodem_recv utils: spkmodem: suggest to use parec instead of parecord 2018-08-13 12:19:33 +00:00
superiotool util/superiotool/nuvoton.c: Minor tag update/removal 2019-07-01 08:30:44 +00:00
testing broadcom: Remove SoC and board support 2018-11-30 10:26:37 +00:00
uio_usbdebug
util_readme util/util_readme: Don't recommend running this script with "sh" 2018-12-18 13:25:21 +00:00
vgabios
viatool
x86 util: Fix typo on plural form of index 2019-05-20 14:45:35 +00:00
xcompile Move -Wlogical-op into xcompile 2019-06-21 08:44:49 +00:00
README.md utils: introduce find_usbdebug.sh to help find USB debug ports 2018-12-19 10:21:32 +00:00

README.md

  • 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 - A set of tools to compare extended) K8 memory settings. Perl
  • archive - Concatenate files and create an archive C
  • mksunxiboot - A simple tool to generate bootable image for sunxi platform. C
  • autoport - Automated porting coreboot to Sandy Bridge/Ivy Bridge platforms Go
  • bimgtool - A simple tool which generates and verifies boot images in the BIMG format, used in systems designed by Imagination Technologies, for example the Pistachio SoC. C
  • 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 console log reader C
  • checklist - Board implementation checklist generator Make
  • chromeos - These scripts can be used to extract System Agent reference code and other blobs (e.g. mrc.bin, refcode, VGA option roms) from a Chrome OS recovery image. C
  • crossgcc - A cross toolchain builder for -elf toolchains (ie. no libc support)
  • docker - Dockerfiles for coreboot-sdk, coreboot-jenkins-node, coreboot.org-status and docs.coreboot.org
  • 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). Python2
  • find_usbdebug - Help find USB debug ports
  • 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
  • genprof - Format function tracing logs Bash C
  • gitconfig - Initialize git repository submodules install git hooks Bash
  • ifdtool - Extract and dump Intel Firmware Descriptor information C
  • intelmetool - Dump interesting things about Management Engine even if hidden C
  • inteltool - Provides information about the Intel CPU/chipset hardware configuration (register contents, MSRs, etc). C
  • intelvbttool - Parse VBT from VGA BIOS C
  • ipqheader
    • createxbl.py - Concatentates 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
  • k8resdump - This program will dump the IO/memory/PCI resources from the K8 memory controller 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
  • 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. Python2
  • 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
  • qualcomm - CMM script to debug Qualcomm coreboot environments. CMM
  • 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. Python2
  • romcc - Compile a C source file generating a binary that does not implicitly use RAM. C
  • sconfig - coreboot device tree compiler Lex Yacc
  • scripts
    • 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
    • dts-to-fmd.sh -Converts a depthcharge fmap.dts into an fmaptool compatible .fmd format 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
    • ucode_h_to_bin.sh - Microcode conversion tool Bash
    • update_submodules - Check all submodules for updates Bash
  • showdevicetree - Compile and dump the device tree C
  • 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
  • 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
  • vgabios - emulated vga driver for qemu C
  • viatool - Extract certain configuration bits on VIA chipsets and CPUs. C
  • x86 - Generates 32-bit PAE page tables based on a CSV input file. Go
  • xcompile - Cross compile setup Bash