coreboot/util/amdtools
Patrick Rudolph 5a0953614b util/amdtools: Add ec_usb_pd_fw
ec_usb_pd_fw is a board specific utility to generate pointers to
firmware images found in the SPI flash. On some AMD boards the
x86 SPI flash is shared with the EC. The EC can also update the
USB Power Delivery controllers firmware, but it needs to know where
to load the firmware from. It uses pointers stored in the first
128 bytes of the x86 SPI flash.

Add a small utility to generate pointers to the USB PD firmware,
located somewhere in the ROM identified by the FMAP region.

There can be up to 12 USB PD firmwares, depending on the used
vendor or model.

Change-Id: I98717e849592f83eb7bacbfed33a8d4b811a5e18
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87430
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 18:13:16 +00:00
..
ec_usb_pd_fw util/amdtools: Add ec_usb_pd_fw 2025-07-17 18:13:16 +00:00
example_input
description.md util: Update description files 2022-05-30 13:05:21 +00:00
k8-compare-pci-space.pl
k8-interpret-extended-memory-settings.pl
k8-read-mem-settings.sh
parse-bkdg.pl
README.md util/amdtools: update K8 BKDG URL 2024-10-16 15:31:02 +00:00
update_efs_spi_speed util/amdtools: Add script to update the SPI speed in the EFS header 2021-09-08 19:41:31 +00:00

amdtools

Various tools for AMD platforms

A tool to update the SPI speed set in the EFS table

This works for Stoney Ridge and Zen class AMD processors.

  • update_efs_spi_speed

A set of tools to compare (extended) K8 memory settings.

  • k8-compare-pci-space.pl
  • k8-interpret-extended-memory-settings.pl
  • k8-read-mem-settings.sh
  • parse-bkdg.pl

Before you can use them, you need to massage the relevant BKDG sections into useable data. Here's how.

  1. First, you need to acquire a copy of the K8 BKDG. Go here: Rev F: https://www.amd.com/content/dam/amd/en/documents/archived-tech-docs/programmer-references/32559.pdf
  2. Make sure pdftotext is installed (it's in the poppler-utils package on Debian/Ubuntu).
  3. Run the bkdg through pdftotext: pdftotext -layout 32559.pdf 32559.txt
  4. Extract sections 4.5.15 - 4.5.19 from the file, and save it separately, say as bkdg-raw.data.
  5. Finally run the txt file through the parse-bkdg.pl script like so: parse-bkdg.pl < bkdg-raw.data > bkdg.data

Now we have the bkdg.data file that is used by the other scripts.

If you want to test the scripts without doing all this work, you can use some sample input files from the 'example_input/' directory.