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

Reply via email to