AMI-Aptio-BIOS-Reversed / AmiIntelCpuPkg / Microcode / MicrocodeUpdate /
@Ajax Dong Ajax Dong authored 2 days ago
..
MicrocodeUpdate.c Recovering names (well, look still has huge cleanups) 2 days ago
MicrocodeUpdate.h Recovering names (well, look still has huge cleanups) 2 days ago
MicrocodeUpdate.md Restructure the repo 2 days ago
README.md Restructure the repo 2 days ago
README.md

MicrocodeUpdate

Index

0191

Size

56A4h (22,180 bytes)

Phase

DXE SMM (System Management Mode driver)

Source Package

AmiIntelCpuPkg/Microcode/MicrocodeUpdate/MicrocodeUpdate

Overview

MicrocodeUpdate is an SMM driver that handles CPU microcode patching within System Management Mode. It provides the infrastructure for loading and applying processor microcode updates at boot time and during runtime. This is essential for shipping security mitigations (such as speculative execution vulnerabilities) and processor errata workarounds without requiring a full platform firmware update or CPU stepping changes.

Key Functions

  • ModuleEntryPoint (0x550): Entry point; initializes microcode update infrastructure and registers SMI handlers for runtime microcode loading.
  • sub_600 (45 callees): Main microcode update dispatcher; enumerates CPU sockets/cores, locates the microcode patch in firmware volumes, validates the patch signature, and applies it via WRMSR.
  • sub_19A0 (7 callees): Microcode patch validation logic; verifies patch header checksums, processor signature matching, and version revision checks.
  • sub_2058: Error handler for microcode update failures; provides status reporting and fallback paths.

Strings

  • "MicrocodeUpdate" (module identification)
  • References to CompareMemWrapper, CopyMemWrapper (patch verification)
  • Build path: AmiIntelCpuPkg\Microcode\MicrocodeUpdate\MicrocodeUpdate

Libraries Referenced

  • SmmMemoryAllocationLib
  • SmmMmPciBaseLib (CpRcPkg)
  • DxeHobLib
  • DxePcdLib

Platform

Intel Purley (HR650X server platform)