Expand description
Utilities for finding the AGESA version in physical memory (on AMD Zen).
§AGESA
AGESA is a procedure library by AMD embedded into the UEFI firmware of AMD platforms up to and including Zen 5. It performs Platform Initialization, so it is responsible for CPU startup, memory training, IO (including PCIe) configuration, and other aspects.
Because of AGESA’s importance for stability and security, one may want to inspect its version, ideally from user space on a running system. Alas, the Linux kernel does not provide a straightforward interface for this; however, AGESA’s version marker is generally located somewhere in extended memory and can thus be obtained via a brute-force search as implemented by this module.
Per coreboot, there are two documented iterations of AGESA:
- v5 (or Arch2008) for CPU families before Zen (<
17h
) - v9 for Zen and later (>=
17h
)
For now, this module only supports Zen platforms (AGESA v9).
Structs§
Enums§
Functions§
- find_
agesa_ version - Search for the AGESA version within all
Reserved
memory regions. - find_
agesa_ version_ in_ memory_ region - Search for the AGESA version within the given memory region.
- get_
reserved_ regions_ in_ extended_ memory - Find and return all
Reserved
regions in extended memory (> 1 MiB).