MicrocodePatchHob.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /** @file
  2. The microcode patch HOB is used to store the information of:
  3. A. Base address and size of the loaded microcode patches data;
  4. B. Detected microcode patch for each processor within system.
  5. Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
  6. SPDX-License-Identifier: BSD-2-Clause-Patent
  7. **/
  8. #ifndef _MICROCODE_PATCH_HOB_H_
  9. #define _MICROCODE_PATCH_HOB_H_
  10. extern EFI_GUID gEdkiiMicrocodePatchHobGuid;
  11. //
  12. // The EDKII microcode patch HOB will be produced by MpInitLib and it can be
  13. // consumed by modules that want to detect/apply microcode patches.
  14. //
  15. typedef struct {
  16. //
  17. // The base address of the microcode patches data after being loaded into
  18. // memory.
  19. //
  20. UINT64 MicrocodePatchAddress;
  21. //
  22. // The total size of the loaded microcode patches.
  23. //
  24. UINT64 MicrocodePatchRegionSize;
  25. //
  26. // The number of processors within the system.
  27. //
  28. UINT32 ProcessorCount;
  29. //
  30. // An array with 'ProcessorCount' elements that stores the offset (with
  31. // regard to 'MicrocodePatchAddress') of the detected microcode patch
  32. // (including the CPU_MICROCODE_HEADER data structure) for each processor.
  33. // If no microcode patch is detected for certain processor, the relating
  34. // element will be set to MAX_UINT64.
  35. //
  36. UINT64 ProcessorSpecificPatchOffset[0];
  37. } EDKII_MICROCODE_PATCH_HOB;
  38. #endif