]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Include/Guid/MicrocodePatchHob.h
UefiCpuPkg: Add definitions for EDKII microcode patch HOB
[mirror_edk2.git] / UefiCpuPkg / Include / Guid / MicrocodePatchHob.h
diff --git a/UefiCpuPkg/Include/Guid/MicrocodePatchHob.h b/UefiCpuPkg/Include/Guid/MicrocodePatchHob.h
new file mode 100644 (file)
index 0000000..2d307fb
--- /dev/null
@@ -0,0 +1,44 @@
+/** @file\r
+  The microcode patch HOB is used to store the information of:\r
+    A. Base address and size of the loaded microcode patches data;\r
+    B. Detected microcode patch for each processor within system.\r
+\r
+  Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef _MICROCODE_PATCH_HOB_H_\r
+#define _MICROCODE_PATCH_HOB_H_\r
+\r
+extern EFI_GUID gEdkiiMicrocodePatchHobGuid;\r
+\r
+//\r
+// The EDKII microcode patch HOB will be produced by MpInitLib and it can be\r
+// consumed by modules that want to detect/apply microcode patches.\r
+//\r
+typedef struct {\r
+  //\r
+  // The base address of the microcode patches data after being loaded into\r
+  // memory.\r
+  //\r
+  UINT64    MicrocodePatchAddress;\r
+  //\r
+  // The total size of the loaded microcode patches.\r
+  //\r
+  UINT64    MicrocodePatchRegionSize;\r
+  //\r
+  // The number of processors within the system.\r
+  //\r
+  UINT32    ProcessorCount;\r
+  //\r
+  // An array with 'ProcessorCount' elements that stores the offset (with\r
+  // regard to 'MicrocodePatchAddress') of the detected microcode patch\r
+  // (including the CPU_MICROCODE_HEADER data structure) for each processor.\r
+  // If no microcode patch is detected for certain processor, the relating\r
+  // element will be set to MAX_UINT64.\r
+  //\r
+  UINT64    ProcessorSpecificPatchOffset[0];\r
+} EDKII_MICROCODE_PATCH_HOB;\r
+\r
+#endif\r