| /** @file | |
| The microcode patch HOB is used to store the information of: | |
| A. Base address and size of the loaded microcode patches data; | |
| B. Detected microcode patch for each processor within system. | |
| Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef _MICROCODE_PATCH_HOB_H_ | |
| #define _MICROCODE_PATCH_HOB_H_ | |
| extern EFI_GUID gEdkiiMicrocodePatchHobGuid; | |
| // | |
| // The EDKII microcode patch HOB will be produced by MpInitLib and it can be | |
| // consumed by modules that want to detect/apply microcode patches. | |
| // | |
| typedef struct { | |
| // | |
| // The base address of the microcode patches data after being loaded into | |
| // memory. | |
| // | |
| UINT64 MicrocodePatchAddress; | |
| // | |
| // The total size of the loaded microcode patches. | |
| // | |
| UINT64 MicrocodePatchRegionSize; | |
| // | |
| // The number of processors within the system. | |
| // | |
| UINT32 ProcessorCount; | |
| // | |
| // An array with 'ProcessorCount' elements that stores the offset (with | |
| // regard to 'MicrocodePatchAddress') of the detected microcode patch | |
| // (including the CPU_MICROCODE_HEADER data structure) for each processor. | |
| // If no microcode patch is detected for certain processor, the relating | |
| // element will be set to MAX_UINT64. | |
| // | |
| UINT64 ProcessorSpecificPatchOffset[0]; | |
| } EDKII_MICROCODE_PATCH_HOB; | |
| #endif |