[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[edk2-devel] [PATCH 0/4] OvmfPkg/PlatformPei: fix two assertion failures with weird RAM sizes

Repo:   https://github.com/lersek/edk2.git
Branch: exbar_mtrr_rhbz_1666941
Ref:    https://bugzilla.redhat.com/show_bug.cgi?id=1666941
Ref:    https://bugzilla.redhat.com/show_bug.cgi?id=1701710

When booting OVMF on QEMU with "weird" RAM sizes, QEMU's low-RAM split
logic can trigger two assertion failures in OVMF:

- conflict between PCIEXBAR (ECAM) and low-RAM, on q35,

- running out of variable MTRRs when marking the uncacheable MMIO range
  in 32-bit address space, on both i440fx and q35.

This series fixes both issues, by moving around the PCIEXBAR on q35, and
by truncating the size of the uncacheable 32-bit area to a power of two.
The latter idea was inspired by SeaBIOS.

Tested on both machine types, with the following memory sizes (all in
MB): 1025, 2815, 3583, 5120. On i440fx, the X64 build was used (without
SMM). On q35, the IA32 and IA32X64 builds were used (with SMM). Testing
included "/proc/mtrr" verification, 32-bit PCI MMIO aperture
verification, general dmesg checks, and my usual regression tests too
(ACPI S3, UEFI variable services, ...).

Cc: Ard Biesheuvel <ard biesheuvel linaro org>
Cc: Gerd Hoffmann <kraxel redhat com>
Cc: Jordan Justen <jordan l justen intel com>


Laszlo Ersek (4):
  OvmfPkg/PlatformPei: assign PciSize on both i440fx/q35 branches
  OvmfPkg/PlatformPei: hoist PciBase assignment above the i440fx/q35
  OvmfPkg/PlatformPei: reorder the 32-bit PCI hole vs. the PCIEXBAR on
  OvmfPkg/PlatformPei: fix MTRR for low-RAM sizes that have many bits

 OvmfPkg/OvmfPkgIa32.dsc         |  5 +----
 OvmfPkg/OvmfPkgIa32X64.dsc      |  5 +----
 OvmfPkg/OvmfPkgX64.dsc          |  5 +----
 OvmfPkg/PlatformPei/MemDetect.c | 23 +++++++++++++++++---
 OvmfPkg/PlatformPei/Platform.c  | 14 +++++-------
 OvmfPkg/PlatformPei/Platform.h  |  2 ++
 6 files changed, 31 insertions(+), 23 deletions(-)


Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#39965): https://edk2.groups.io/g/devel/message/39965
Mute This Topic: https://groups.io/mt/31489694/1813853
Group Owner: devel+owner edk2 groups io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive redhat com]

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]