This series fixes <https://github.com/tianocore/edk2/issues/97>:
RFE: OvmfPkg: Set MSR_IA32_FEATURE_CONTROL by following QEMU fw_cfg file
The Request for Enhancement is very detailed (thankfully), so I will not
copy details here. I will describe the patch series in brief:
Patches #1 and #2 enable OVMF to include and run UefiCpuPkg/CpuMpPei, on
both the normal boot path and the S3 resume path.
Patch #3 pulls in UefiCpuPkg/CpuMpPei.
Patch #4 invokes EFI_PEI_MP_SERVICES_PPI.StartupAllAPs() (provided by
UefiCpuPkg/CpuMpPei) from OvmfPkg/PlatformPei, in order to program the
IA32_FEATURE_CONTROL MSR on all APs, in addition to the BSP. The MSR
value is taken from QEMU via fw_cfg.
I tested and regression-tested this patch extensively. The MSR values
were verified in the guest according to the instructions in the GitHub
issue report, for
{ SMM present, SMM absent } x { normal boot, S3 resume }
in SMP Fedora guests (4 and 8 VCPUs).
The regression tests included:
- SMM_REQUIRE, Ia32, Q35, Fedora, normal boot and S3
- SMM_REQUIRE, Ia32X64, Q35, Fedora, normal boot and S3
- SMM_REQUIRE, Ia32X64, Q35, Windows 8.1, normal boot and S3
- no SMM, X64, i440fx, Fedora, normal boot and S3
- no SMM, X64, i440fx, Windows 2008 R2, normal boot and S3
- no SMM, X64, i400fx, Windows 2012 R2, normal boot and S3
Public branch:
<https://github.com/lersek/edk2/commits/feat_ctrl_issue97>.
Cc: Jeff Fan <[email protected]>
Cc: Jordan Justen <[email protected]>
Cc: Michael Kinney <[email protected]>
Thanks
Laszlo
Laszlo Ersek (4):
OvmfPkg/PlatformPei: create one memory HOB at S3 resume too, for
CpuMpPei
OvmfPkg: increase the S3 permanent PEI RAM size by 8.5 MB
OvmfPkg: include UefiCpuPkg/CpuMpPei
OvmfPkg/PlatformPei: program MSR_IA32_FEATURE_CONTROL from fw_cfg
OvmfPkg/OvmfPkgIa32.dsc | 5 +
OvmfPkg/OvmfPkgIa32.fdf | 11 +-
OvmfPkg/OvmfPkgIa32X64.dsc | 5 +
OvmfPkg/OvmfPkgIa32X64.fdf | 11 +-
OvmfPkg/OvmfPkgX64.dsc | 5 +
OvmfPkg/OvmfPkgX64.fdf | 11 +-
OvmfPkg/PlatformPei/FeatureControl.c | 134 ++++++++++++++++++++
OvmfPkg/PlatformPei/MemDetect.c | 24 +++-
OvmfPkg/PlatformPei/Platform.c | 1 +
OvmfPkg/PlatformPei/Platform.h | 5 +
OvmfPkg/PlatformPei/PlatformPei.inf | 2 +
11 files changed, 198 insertions(+), 16 deletions(-)
create mode 100644 OvmfPkg/PlatformPei/FeatureControl.c
--
1.8.3.1
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel