Add AMD firmware parser

Based on the open source AMDFWTOOL available here:
https://github.com/coreboot/coreboot/tree/main/util/amdfwtool

TODO:
- Merge duplicated regions
  There can be multiple L2 directory tables, for A/B recovery or
  to support different SoC SKUs. They point to the same regions,
  causing the same area to be shown multiple times in the parsed
  image.
- Better quirks support
  PSP hardcodes certain sizes and address types for some files.
  The parser might thus fail, even though it works on real hardware.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
This commit is contained in:
Patrick Rudolph 2025-01-29 08:40:38 +01:00
parent 3aefe281c4
commit 432340352c
12 changed files with 1366 additions and 11 deletions

View file

@ -75,6 +75,8 @@ namespace Types {
CpdExtension,
CpdSpiEntry,
StartupApDataEntry,
DirectoryTable,
DirectoryTableEntry,
};
}
@ -82,6 +84,7 @@ namespace Subtypes {
enum ImageSubtypes{
IntelImage = 90,
UefiImage,
AmdImage,
};
enum CapsuleSubtypes {
@ -116,6 +119,9 @@ namespace Subtypes {
Reserved1Region,
Reserved2Region,
PttRegion,
PspL1DirectoryRegion,
PspL2DirectoryRegion,
PspDirectoryFile,
};
enum PaddingSubtypes {
@ -144,7 +150,14 @@ namespace Subtypes {
InvalidSysFEntry = 150,
NormalSysFEntry,
};
enum DirectorySubtypes {
PSPDirectory = 150,
ComboDirectory,
BiosDirectory,
ISHDirectory,
};
enum EvsaEntrySubtypes {
InvalidEvsaEntry = 160,
UnknownEvsaEntry,