coreboot-kgpe-d16/util
Sergii Dmytruk 6da62684de util/cbmem: add parsing of TPM logs per specs
CBMEM can contain log in different forms (at most one is present):
 - coreboot-specific format (CBMEM_ID_TPM_CB_LOG exported as
   LB_TAG_TPM_CB_LOG)
 - TPM1.2 format (CBMEM_ID_TCPA_TCG_LOG)
 - TPM2 format (CBMEM_ID_TPM2_TCG_LOG)

The last two follow specifications by Trusted Computing Group, but until
now cbmem couldn't print them.  These formats were added not so long ago
in:
 - commit 4191dbf0c9 ("security/tpm: add TPM log format as per 1.2
   spec")
 - commit 53db677586 ("security/tpm: add TPM log format as per 2.0
   spec")

These changes make cbmem utility check for existence of TPM1.2/TPM2 logs
in CBMEM and add code necessary for parsing and printing of their
entries.

TEST=`cbmem -L` for CONFIG_TPM1=y case
TCPA log:
	Specification: 1.21
	Platform class: PC Client
TCPA log entry 1:
	PCR: 2
	Event type: Action
	Digest: 5622416ea417186aa1ac32b32c527ac09009fb5e
	Event data: FMAP: FMAP

TEST=`cbmem -L` for CONFIG_TPM2=y case
TPM2 log:
	Specification: 2.00
	Platform class: PC Client
TPM2 log entry 1:
	PCR: 2
	Event type: Action
	Digests:
		 SHA256: 68d27f08cb261463a6d004524333ac5db1a3c2166721785a6061327b6538657c
	Event data: FMAP: FMAP

Change-Id: Ib76dc7dec56dd1789a219539a1ac05a958f47a5c
Ticket: https://ticket.coreboot.org/issues/425
Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68749
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-07-04 13:07:13 +00:00
..
abuild util/abuild: Improve elapsed time measurement 2023-06-14 19:25:56 +00:00
acpi
amdfwtool util/amdfwtool: Add ability to split hash table 2023-06-02 22:19:44 +00:00
amdtools
apcb
archive
autoport ec/lenovo/pmh7/chip.h: Use 'bool' instead of 'int' 2023-04-08 03:36:07 +00:00
bincfg
board_status board_status: Point to documentation in header 2023-06-10 01:44:06 +00:00
bucts
cavium
cbfstool commonlib/console/post_code.h: Change post code prefix to POSTCODE 2023-06-23 15:06:04 +00:00
cbmem util/cbmem: add parsing of TPM logs per specs 2023-07-04 13:07:13 +00:00
chromeos util/chromeos: Add EC header update utility 2023-05-16 16:34:17 +00:00
coreboot-configurator
crossgcc crossgcc: Upgrade IASL from 20230331 to 20230628 2023-07-02 11:46:53 +00:00
docker util/docker/coreboot-sdk: Drop legacy libftdi package 2023-07-02 21:09:13 +00:00
dtd_parser
ectool
exynos
find_usbdebug
futility
fuzz-tests
genbuild_h
gitconfig commit-msg: Match the Signed-off-by line with name and mail address 2023-05-26 21:16:32 +00:00
goswid@567a1c99b0 Update goswid submodule to upstream master 2023-06-12 00:51:50 +00:00
ifdtool util/ifdtool: Add support for Intel 800 series chipset 2023-05-27 04:01:45 +00:00
intelmetool util: Use common ARRAY_SIZE define 2023-05-22 19:24:27 +00:00
intelp2m
inteltool util/inteltool: Fix building with musl libc 2023-06-10 00:52:54 +00:00
intelvbttool
ipqheader
kbc1126
kconfig util/kconfig: Fix default value getter for integer options 2023-05-22 12:34:50 +00:00
lint
liveiso
mainboard mb/google/rex: add variant gpio tables for variant creation 2023-04-13 17:40:26 +00:00
marvell util: Use common ARRAY_SIZE define 2023-05-22 19:24:27 +00:00
me_cleaner
mma
msrtool
mtkheader
nixshell
nvidia Update cbootimage submodule to upstream master 2023-06-12 00:51:21 +00:00
nvramtool
pmh7tool
post
qemu util/qemu: Add config for AArch64 2023-06-23 08:48:29 +00:00
qualcomm
release
riscv
rockchip
sconfig util/sconfig: Improve usage and long options 2023-07-03 13:00:19 +00:00
scripts util/scripts/show_platforms.sh: Fix reStructuredText table output 2023-05-11 16:53:23 +00:00
showdevicetree
spd_tools
spdtool
spkmodem_recv
superiotool util: Use common ARRAY_SIZE define 2023-05-22 19:24:27 +00:00
supermicro
testing
uio_usbdebug
util_readme
vboot_list
vgabios
x86
xcompile libpayload;arch,cpu/x86: drop USE_MARCH_586 Kconfig option 2023-05-27 00:29:02 +00:00
README.md

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 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 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
  • 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
  • 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
  • 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
  • liveiso - 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 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. Python3
  • 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
    • 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-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
  • 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