summaryrefslogtreecommitdiffstats
path: root/MdePkg/MdePkg.dec
diff options
context:
space:
mode:
authorMichael D Kinney <michael.d.kinney@intel.com>2019-04-29 16:17:20 -0700
committerMichael D Kinney <michael.d.kinney@intel.com>2019-04-30 16:39:09 -0700
commita41b12574ee1210b1cc73d7e5d374b1665cddaaa (patch)
tree17dc88ffcb59a30a8a4f63dc1329281b67d539a6 /MdePkg/MdePkg.dec
parent0c40c9c925ca1cc15b9cbeae31723b0b784b932e (diff)
downloadedk2-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.dec9
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>