[PATCH v1 1/1] IntelSiliconPkg/ShadowMicrocodePei: Add PCD for shadowing all microcode.


Aaron Li
 

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=3D2891

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>
---
Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/ShadowMicrocodePei.c=
| 4 ++++
Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/ShadowMicrocodePei.i=
nf | 3 +++
Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec =
| 7 +++++++
3 files changed, 14 insertions(+)

diff --git a/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/ShadowMi=
crocodePei.c b/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/Shadow=
MicrocodePei.c
index 8d6574f66794..5c7ee6910c8e 100644
--- a/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/ShadowMicrocode=
Pei.c
+++ b/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/ShadowMicrocode=
Pei.c
@@ -132,6 +132,10 @@ IsMicrocodePatchNeedLoad (
CPU_MICROCODE_EXTENDED_TABLE *ExtendedTable;=0D
UINTN Index;=0D
=0D
+ if (FeaturePcdGet (PcdShadowAllMicrocode)) {=0D
+ return TRUE;=0D
+ }=0D
+=0D
//=0D
// Check the 'ProcessorSignature' and 'ProcessorFlags' in microcode patc=
h header.=0D
//=0D
diff --git a/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/ShadowMi=
crocodePei.inf b/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/Shad=
owMicrocodePei.inf
index 019400ab31da..581780add891 100644
--- a/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/ShadowMicrocode=
Pei.inf
+++ b/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode/ShadowMicrocode=
Pei.inf
@@ -39,5 +39,8 @@ [Guids]
gEdkiiMicrocodeShadowInfoHobGuid=0D
gEdkiiMicrocodeStorageTypeFlashGuid=0D
=0D
+[Pcd]=0D
+ gIntelSiliconPkgTokenSpaceGuid.PcdShadowAllMicrocode=0D
+=0D
[Depex]=0D
TRUE=0D
diff --git a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec b/Silicon/In=
tel/IntelSiliconPkg/IntelSiliconPkg.dec
index e4a7fec3a3ea..3a12fe99fac6 100644
--- a/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec
+++ b/Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec
@@ -76,6 +76,13 @@ [Protocols]
# Include/Protocol/PlatformDeviceSecurityPolicy.h=0D
gEdkiiDeviceSecurityPolicyProtocolGuid =3D {0x7ea41a99, 0x5e32, 0x4c97, =
{0x88, 0xc4, 0xd6, 0xe7, 0x46, 0x84, 0x9, 0xd4}}=0D
=0D
+[PcdsFeatureFlag]=0D
+ ## Indicates if all microcode update patches shall be shadowed to memory=
.=0D
+ # TRUE - All microcode patches will be shadowed.<BR>=0D
+ # FALSE - Only the microcode for current present processors will be sh=
adowed.<BR>=0D
+ # @Prompt Shadow all microcode update patches.=0D
+ gIntelSiliconPkgTokenSpaceGuid.PcdShadowAllMicrocode|FALSE|BOOLEAN|0x000=
00006=0D
+=0D
[PcdsFixedAtBuild, PcdsPatchableInModule]=0D
## Error code for VTd error.<BR><BR>=0D
# EDKII_ERROR_CODE_VTD_ERROR =3D (EFI_IO_BUS_UNSPECIFIED | (EFI_OEM_SPE=
CIFIC | 0x00000000)) =3D 0x02008000<BR>=0D
--=20
2.23.0.windows.1

Join devel@edk2.groups.io to automatically receive all group messages.