* [Patch 0/2] UefiCpuPkg/CpuCommonFeaturesLib: Set SMXE bit of CR4 when SMX is enabled.
@ 2019-12-23 6:55 Liming Gao
2019-12-23 6:55 ` [Patch 1/2] MdePkg BaseLib.h: Update IA32_CR4 strut to include all public fields Liming Gao
2019-12-23 6:55 ` [Patch 2/2] UefiCpuPkg/CpuCommonFeaturesLib: SMXE bit of CR4 should set Liming Gao
0 siblings, 2 replies; 5+ messages in thread
From: Liming Gao @ 2019-12-23 6:55 UTC (permalink / raw)
To: devel; +Cc: Jason Voelz
From: Jason Voelz <jason.voelz@intel.com>
Jason Voelz (2):
MdePkg BaseLib.h: Update IA32_CR4 strut to include all public fields
UefiCpuPkg/CpuCommonFeaturesLib: SMXE bit of CR4 should set
UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c | 9 +++++++++
MdePkg/Include/Library/BaseLib.h | 15 ++++++++++++---
2 files changed, 21 insertions(+), 3 deletions(-)
--
2.13.0.windows.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Patch 1/2] MdePkg BaseLib.h: Update IA32_CR4 strut to include all public fields
2019-12-23 6:55 [Patch 0/2] UefiCpuPkg/CpuCommonFeaturesLib: Set SMXE bit of CR4 when SMX is enabled Liming Gao
@ 2019-12-23 6:55 ` Liming Gao
2020-01-08 14:12 ` Ni, Ray
2019-12-23 6:55 ` [Patch 2/2] UefiCpuPkg/CpuCommonFeaturesLib: SMXE bit of CR4 should set Liming Gao
1 sibling, 1 reply; 5+ messages in thread
From: Liming Gao @ 2019-12-23 6:55 UTC (permalink / raw)
To: devel; +Cc: Jason Voelz, Ray Ni
From: Jason Voelz <jason.voelz@intel.com>
Based on Intel Software Develeper's Manual, add all fields in IA32_CR4.
Signed-off-by: Jason Voelz <jason.voelz@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
---
MdePkg/Include/Library/BaseLib.h | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/BaseLib.h
index 2a75bc023f..ecadff8b23 100644
--- a/MdePkg/Include/Library/BaseLib.h
+++ b/MdePkg/Include/Library/BaseLib.h
@@ -5387,10 +5387,19 @@ typedef union {
UINT32 OSXMMEXCPT:1; ///< Operating System Support for
///< Unmasked SIMD Floating Point
///< Exceptions.
- UINT32 Reserved_2:1; ///< Reserved.
+ UINT32 UMIP:1; ///< User-Mode Instruction Prevention.
UINT32 LA57:1; ///< Linear Address 57bit.
- UINT32 VMXE:1; ///< VMX Enable
- UINT32 Reserved_1:18; ///< Reserved.
+ UINT32 VMXE:1; ///< VMX Enable.
+ UINT32 SMXE:1; ///< SMX Enable.
+ UINT32 Reserved_3:1; ///< Reserved.
+ UINT32 FSGSBASE:1; ///< FSGSBASE Enable.
+ UINT32 PCIDE:1; ///< PCID Enable.
+ UINT32 OSXSAVE:1; ///< XSAVE and Processor Extended States Enable.
+ UINT32 Reserved_4:1; ///< Reserved.
+ UINT32 SMEP:1; ///< SMEP Enable.
+ UINT32 SMAP:1; ///< SMAP Enable.
+ UINT32 PKE:1; ///< Protection-Key Enable.
+ UINT32 Reserved_5:9; ///< Reserved.
} Bits;
UINTN UintN;
} IA32_CR4;
--
2.13.0.windows.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Patch 2/2] UefiCpuPkg/CpuCommonFeaturesLib: SMXE bit of CR4 should set
2019-12-23 6:55 [Patch 0/2] UefiCpuPkg/CpuCommonFeaturesLib: Set SMXE bit of CR4 when SMX is enabled Liming Gao
2019-12-23 6:55 ` [Patch 1/2] MdePkg BaseLib.h: Update IA32_CR4 strut to include all public fields Liming Gao
@ 2019-12-23 6:55 ` Liming Gao
2020-01-08 14:12 ` Ni, Ray
1 sibling, 1 reply; 5+ messages in thread
From: Liming Gao @ 2019-12-23 6:55 UTC (permalink / raw)
To: devel; +Cc: Jason Voelz, Ray Ni
From: Jason Voelz <jason.voelz@intel.com>
Add code to set SMXE in CR4 in the SmxInitialize flow when SMX is enabled.
Signed-off-by: Jason Voelz <jason.voelz@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
---
UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c b/UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c
index 38d3f53f56..b4474d2fab 100644
--- a/UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c
+++ b/UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c
@@ -240,6 +240,15 @@ SmxInitialize (
Status = RETURN_UNSUPPORTED;
}
+ CPU_REGISTER_TABLE_WRITE_FIELD (
+ ProcessorNumber,
+ ControlRegister,
+ 4,
+ IA32_CR4,
+ Bits.SMXE,
+ (State) ? 1 : 0
+ )
+
CPU_REGISTER_TABLE_TEST_THEN_WRITE_FIELD (
ProcessorNumber,
Msr,
--
2.13.0.windows.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Patch 1/2] MdePkg BaseLib.h: Update IA32_CR4 strut to include all public fields
2019-12-23 6:55 ` [Patch 1/2] MdePkg BaseLib.h: Update IA32_CR4 strut to include all public fields Liming Gao
@ 2020-01-08 14:12 ` Ni, Ray
0 siblings, 0 replies; 5+ messages in thread
From: Ni, Ray @ 2020-01-08 14:12 UTC (permalink / raw)
To: Gao, Liming, devel@edk2.groups.io; +Cc: Voelz, Jason
Reviewed-by: Ray Ni <ray.ni@intel.com>
> -----Original Message-----
> From: Gao, Liming <liming.gao@intel.com>
> Sent: Monday, December 23, 2019 2:56 PM
> To: devel@edk2.groups.io
> Cc: Voelz, Jason <jason.voelz@intel.com>; Ni, Ray <ray.ni@intel.com>
> Subject: [Patch 1/2] MdePkg BaseLib.h: Update IA32_CR4 strut to include all public fields
>
> From: Jason Voelz <jason.voelz@intel.com>
>
> Based on Intel Software Develeper's Manual, add all fields in IA32_CR4.
>
> Signed-off-by: Jason Voelz <jason.voelz@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> ---
> MdePkg/Include/Library/BaseLib.h | 15 ++++++++++++---
> 1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/BaseLib.h
> index 2a75bc023f..ecadff8b23 100644
> --- a/MdePkg/Include/Library/BaseLib.h
> +++ b/MdePkg/Include/Library/BaseLib.h
> @@ -5387,10 +5387,19 @@ typedef union {
> UINT32 OSXMMEXCPT:1; ///< Operating System Support for
> ///< Unmasked SIMD Floating Point
> ///< Exceptions.
> - UINT32 Reserved_2:1; ///< Reserved.
> + UINT32 UMIP:1; ///< User-Mode Instruction Prevention.
> UINT32 LA57:1; ///< Linear Address 57bit.
> - UINT32 VMXE:1; ///< VMX Enable
> - UINT32 Reserved_1:18; ///< Reserved.
> + UINT32 VMXE:1; ///< VMX Enable.
> + UINT32 SMXE:1; ///< SMX Enable.
> + UINT32 Reserved_3:1; ///< Reserved.
> + UINT32 FSGSBASE:1; ///< FSGSBASE Enable.
> + UINT32 PCIDE:1; ///< PCID Enable.
> + UINT32 OSXSAVE:1; ///< XSAVE and Processor Extended States Enable.
> + UINT32 Reserved_4:1; ///< Reserved.
> + UINT32 SMEP:1; ///< SMEP Enable.
> + UINT32 SMAP:1; ///< SMAP Enable.
> + UINT32 PKE:1; ///< Protection-Key Enable.
> + UINT32 Reserved_5:9; ///< Reserved.
> } Bits;
> UINTN UintN;
> } IA32_CR4;
> --
> 2.13.0.windows.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Patch 2/2] UefiCpuPkg/CpuCommonFeaturesLib: SMXE bit of CR4 should set
2019-12-23 6:55 ` [Patch 2/2] UefiCpuPkg/CpuCommonFeaturesLib: SMXE bit of CR4 should set Liming Gao
@ 2020-01-08 14:12 ` Ni, Ray
0 siblings, 0 replies; 5+ messages in thread
From: Ni, Ray @ 2020-01-08 14:12 UTC (permalink / raw)
To: Gao, Liming, devel@edk2.groups.io; +Cc: Voelz, Jason
Reviewed-by: Ray Ni <ray.ni@intel.com>
> -----Original Message-----
> From: Gao, Liming <liming.gao@intel.com>
> Sent: Monday, December 23, 2019 2:56 PM
> To: devel@edk2.groups.io
> Cc: Voelz, Jason <jason.voelz@intel.com>; Ni, Ray <ray.ni@intel.com>
> Subject: [Patch 2/2] UefiCpuPkg/CpuCommonFeaturesLib: SMXE bit of CR4 should set
>
> From: Jason Voelz <jason.voelz@intel.com>
>
> Add code to set SMXE in CR4 in the SmxInitialize flow when SMX is enabled.
>
> Signed-off-by: Jason Voelz <jason.voelz@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> ---
> UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c
> b/UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c
> index 38d3f53f56..b4474d2fab 100644
> --- a/UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c
> +++ b/UefiCpuPkg/Library/CpuCommonFeaturesLib/FeatureControl.c
> @@ -240,6 +240,15 @@ SmxInitialize (
> Status = RETURN_UNSUPPORTED;
> }
>
> + CPU_REGISTER_TABLE_WRITE_FIELD (
> + ProcessorNumber,
> + ControlRegister,
> + 4,
> + IA32_CR4,
> + Bits.SMXE,
> + (State) ? 1 : 0
> + )
> +
> CPU_REGISTER_TABLE_TEST_THEN_WRITE_FIELD (
> ProcessorNumber,
> Msr,
> --
> 2.13.0.windows.1
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-01-08 14:12 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-23 6:55 [Patch 0/2] UefiCpuPkg/CpuCommonFeaturesLib: Set SMXE bit of CR4 when SMX is enabled Liming Gao
2019-12-23 6:55 ` [Patch 1/2] MdePkg BaseLib.h: Update IA32_CR4 strut to include all public fields Liming Gao
2020-01-08 14:12 ` Ni, Ray
2019-12-23 6:55 ` [Patch 2/2] UefiCpuPkg/CpuCommonFeaturesLib: SMXE bit of CR4 should set Liming Gao
2020-01-08 14:12 ` Ni, Ray
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox