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> |
||
|---|---|---|
| .. | ||
| ec_usb_pd_fw | ||
| example_input | ||
| description.md | ||
| k8-compare-pci-space.pl | ||
| k8-interpret-extended-memory-settings.pl | ||
| k8-read-mem-settings.sh | ||
| parse-bkdg.pl | ||
| README.md | ||
| update_efs_spi_speed | ||
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.
- 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
- Make sure pdftotext is installed (it's in the poppler-utils package on Debian/Ubuntu).
- Run the bkdg through pdftotext:
pdftotext -layout 32559.pdf 32559.txt - Extract sections 4.5.15 - 4.5.19 from the file, and save it separately, say as bkdg-raw.data.
- 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.