Browse Source

IntelSiliconPkg/ShadowMicrocodePei: Add PCD for shadowing all microcode.

This patch is to add a PCD PcdShadowAllMicrocode to support shadowing
all microcode patch to memory.

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2891

Signed-off-by: Aaron Li <aaron.li@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Rangasai V Chaganty <rangasai.v.chaganty@intel.com>
Cc: Siyuan Fu <siyuan.fu@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Li, Aaron 3 years ago
parent
commit
f406a036cf

+ 4 - 0
Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/ShadowMicrocodePei.c

@@ -132,6 +132,10 @@ IsMicrocodePatchNeedLoad (
   CPU_MICROCODE_EXTENDED_TABLE           *ExtendedTable;
   UINTN                                  Index;
 
+  if (FeaturePcdGet (PcdShadowAllMicrocode)) {
+    return TRUE;
+  }
+
   //
   // Check the 'ProcessorSignature' and 'ProcessorFlags' in microcode patch header.
   //

+ 3 - 0
Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/ShadowMicrocodePei.inf

@@ -39,5 +39,8 @@
   gEdkiiMicrocodeShadowInfoHobGuid
   gEdkiiMicrocodeStorageTypeFlashGuid
 
+[Pcd]
+  gIntelSiliconPkgTokenSpaceGuid.PcdShadowAllMicrocode
+
 [Depex]
   TRUE

+ 7 - 0
Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec

@@ -77,6 +77,13 @@
   # Include/Protocol/PlatformDeviceSecurityPolicy.h
   gEdkiiDeviceSecurityPolicyProtocolGuid = {0x7ea41a99, 0x5e32, 0x4c97, {0x88, 0xc4, 0xd6, 0xe7, 0x46, 0x84, 0x9, 0xd4}}
 
+[PcdsFeatureFlag]
+  ## Indicates if all microcode update patches shall be shadowed to memory.
+  #   TRUE  - All microcode patches will be shadowed.<BR>
+  #   FALSE - Only the microcode for current present processors will be shadowed.<BR>
+  # @Prompt Shadow all microcode update patches.
+  gIntelSiliconPkgTokenSpaceGuid.PcdShadowAllMicrocode|FALSE|BOOLEAN|0x00000006
+
 [PcdsFixedAtBuild, PcdsPatchableInModule]
   ## Error code for VTd error.<BR><BR>
   #  EDKII_ERROR_CODE_VTD_ERROR = (EFI_IO_BUS_UNSPECIFIED | (EFI_OEM_SPECIFIC | 0x00000000)) = 0x02008000<BR>