diff options
author | Michael D Kinney <michael.d.kinney@intel.com> | 2019-04-29 16:17:20 -0700 |
---|---|---|
committer | Michael D Kinney <michael.d.kinney@intel.com> | 2019-04-30 16:39:09 -0700 |
commit | a41b12574ee1210b1cc73d7e5d374b1665cddaaa (patch) | |
tree | 17dc88ffcb59a30a8a4f63dc1329281b67d539a6 /MdePkg/MdePkg.dec | |
parent | 0c40c9c925ca1cc15b9cbeae31723b0b784b932e (diff) | |
download | edk2-a41b12574ee1210b1cc73d7e5d374b1665cddaaa.tar.gz edk2-a41b12574ee1210b1cc73d7e5d374b1665cddaaa.tar.bz2 edk2-a41b12574ee1210b1cc73d7e5d374b1665cddaaa.zip |
MdePkg: Add PcdSpeculationBarrierType
Add gEfiMdePkgTokenSpaceGuid.PcdSpeculationBarrierType that
uses the PCD type FixedAtBuild. This performs a build time
selection for the type of speculation barrier to use in the
BaseLib function SpeculationBarrier(). The recommended
speculation barrier for x86 is LFENCE and this is the default
value for this PCD. x86 CPUs that do not support LFENCE must
select one of the other supported values which includes CPUID
and nothing.
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Brian J. Johnson <brian.johnson@hpe.com>
Diffstat (limited to 'MdePkg/MdePkg.dec')
-rw-r--r-- | MdePkg/MdePkg.dec | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index e2ea8fff66..28d4a966c2 100644 --- a/MdePkg/MdePkg.dec +++ b/MdePkg/MdePkg.dec @@ -2062,6 +2062,15 @@ # @Prompt Enable control flow enforcement.
gEfiMdePkgTokenSpaceGuid.PcdControlFlowEnforcementPropertyMask|0x0|UINT32|0x30001017
+ ## Indicates the type of instruction sequence to use for a speculation
+ # barrier. The default instruction sequence is LFENCE.<BR><BR>
+ # 0x00 - No operation.<BR>
+ # 0x01 - LFENCE (IA32/X64).<BR>
+ # 0x02 - CPUID (IA32/X64).<BR>
+ # Other - reserved
+ # @Prompt Speculation Barrier Type.
+ gEfiMdePkgTokenSpaceGuid.PcdSpeculationBarrierType|0x01|UINT8|0x30001018
+
[PcdsFixedAtBuild,PcdsPatchableInModule]
## Indicates the maximum length of unicode string used in the following
# BaseLib functions: StrLen(), StrSize(), StrCmp(), StrnCmp(), StrCpy(), StrnCpy()<BR><BR>
|