Module agesa

Source
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§

FoundVersion

Enums§

SearchError

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).

Type Aliases§

SearchResult