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, I/O (including PCIe) configuration, and more.
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
)
This module supports both, but v5 was not yet comprehensively tested.
Structs§
- Agesa
Version - An AGESA version found in physical memory.
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.
- find_
agesa_ version_ in_ reader - Search for the AGESA version within the given buffered reader.
- get_
reserved_ regions_ in_ extended_ memory - Find and return all
Reserved
regions in extended memory (> 1 MiB).