public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 0/5] OvmfPkg: recognize an extended TSEG when QEMU offers it
@ 2017-06-08 17:13 Laszlo Ersek
  2017-06-08 17:13 ` [PATCH 1/5] OvmfPkg: introduce Q35TsegSizeLib (class header and sole lib instance) Laszlo Ersek
                   ` (6 more replies)
  0 siblings, 7 replies; 21+ messages in thread
From: Laszlo Ersek @ 2017-06-08 17:13 UTC (permalink / raw)
  To: edk2-devel-01; +Cc: Jordan Justen

In <https://bugzilla.redhat.com/show_bug.cgi?id=1447027> we found that
the SMM_REQUIRE build of OVMF cannot boot with as many VCPUs as we'd
like, due to SMRAM exhaustion (even with the largest TSEG, 8MB).

Related thread on edk2-devel:
<https://lists.01.org/pipermail/edk2-devel/2017-May/010371.html>.

The QEMU patch at
<http://mid.mail-archive.com/20170608161013.17920-1-lersek@redhat.com>
adds a new device property / PCI config register to the Q35 board's DRAM
controller. The property allows the user (and new Q35 machine types by
default) to specify an arbitrary TSEG size (expressed as a number of
megabytes). The register enables the firmware to query the size /
availability of the feature. The extended size, when available, can be
selected by writing the "11" bitmask to the ESMRAMC.TSEG_SZ register
bit-field. This bitmask (similarly to the invented register's location
in PCI config space) is defined as reserved in the original Q35/MCH
spec.

This series adds support for the feature to OVMF. When an extended TSEG
is offered, OVMF will choose it.

The first four patches extract Q35TsegSizeLib, centralizing the
interpretation of ESMRAMC.TSEG_SZ between PlatformPei, SmmAccessPei and
SmmAccess2Dxe. This subset of patches incurs no observable change in
behavior.

The last patch implements the feature in Q35TsegSizeLib.

Repo:   https://github.com/lersek/edk2.git
Branch: extended_tseg_bz1447027

Cc: Jordan Justen <jordan.l.justen@intel.com>

Thanks
Laszlo

Laszlo Ersek (5):
  OvmfPkg: introduce Q35TsegSizeLib (class header and sole lib instance)
  OvmfPkg/PlatformPei: rebase to Q35TsegSizeLib
  OvmfPkg/SmmAccess: rebase code unique to SmmAccessPei to
    Q35TsegSizeLib
  OvmfPkg/SmmAccess: rebase shared PEIM/DXE code to Q35TsegSizeLib
  OvmfPkg/Q35TsegSizeLib: recognize an extended TSEG when QEMU offers it

 OvmfPkg/Include/IndustryStandard/Q35MchIch9.h     |   4 +
 OvmfPkg/Include/Library/Q35TsegSizeLib.h          |  74 +++++++
 OvmfPkg/Library/Q35TsegSizeLib/Q35TsegSizeLib.c   | 230 ++++++++++++++++++++
 OvmfPkg/Library/Q35TsegSizeLib/Q35TsegSizeLib.inf |  47 ++++
 OvmfPkg/OvmfPkg.dec                               |  13 +-
 OvmfPkg/OvmfPkgIa32.dsc                           |   1 +
 OvmfPkg/OvmfPkgIa32X64.dsc                        |   1 +
 OvmfPkg/OvmfPkgX64.dsc                            |   1 +
 OvmfPkg/PlatformPei/MemDetect.c                   |   7 +-
 OvmfPkg/PlatformPei/PlatformPei.inf               |   2 +-
 OvmfPkg/SmmAccess/SmmAccess2Dxe.inf               |   1 +
 OvmfPkg/SmmAccess/SmmAccessPei.c                  |   7 +-
 OvmfPkg/SmmAccess/SmmAccessPei.inf                |   4 +-
 OvmfPkg/SmmAccess/SmramInternal.c                 |  13 +-
 14 files changed, 384 insertions(+), 21 deletions(-)
 create mode 100644 OvmfPkg/Include/Library/Q35TsegSizeLib.h
 create mode 100644 OvmfPkg/Library/Q35TsegSizeLib/Q35TsegSizeLib.c
 create mode 100644 OvmfPkg/Library/Q35TsegSizeLib/Q35TsegSizeLib.inf

-- 
2.9.3



^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2017-07-02  5:48 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-08 17:13 [PATCH 0/5] OvmfPkg: recognize an extended TSEG when QEMU offers it Laszlo Ersek
2017-06-08 17:13 ` [PATCH 1/5] OvmfPkg: introduce Q35TsegSizeLib (class header and sole lib instance) Laszlo Ersek
2017-06-19 17:30   ` Jordan Justen
2017-06-19 19:39     ` Laszlo Ersek
2017-06-26 17:59       ` Jordan Justen
2017-06-26 19:12         ` Laszlo Ersek
2017-06-26 22:36           ` Jordan Justen
2017-06-26 23:04             ` Laszlo Ersek
2017-06-29 19:14               ` Jordan Justen
2017-07-01 20:42                 ` Laszlo Ersek
2017-07-02  5:50                   ` Jordan Justen
2017-06-21  0:52     ` Yao, Jiewen
2017-06-22 16:22       ` Laszlo Ersek
2017-06-08 17:13 ` [PATCH 2/5] OvmfPkg/PlatformPei: rebase to Q35TsegSizeLib Laszlo Ersek
2017-06-08 17:13 ` [PATCH 3/5] OvmfPkg/SmmAccess: rebase code unique to SmmAccessPei " Laszlo Ersek
2017-06-08 17:13 ` [PATCH 4/5] OvmfPkg/SmmAccess: rebase shared PEIM/DXE code " Laszlo Ersek
2017-06-08 17:13 ` [PATCH 5/5] OvmfPkg/Q35TsegSizeLib: recognize an extended TSEG when QEMU offers it Laszlo Ersek
2017-06-16  8:15 ` [PATCH 0/5] OvmfPkg: " Laszlo Ersek
2017-06-19 18:09 ` Jordan Justen
2017-06-19 22:39   ` Laszlo Ersek
2017-06-20 22:29     ` Laszlo Ersek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox